Http 缓存简介和使用

缓存流程

浏览器向服务器请求数据,发送请求(request)报文;服务器向浏览器返回数据,返回响应(response)报文。
报文信息主要分为两部分

阅读更多

Webstorm Tips

1. 切换颜色值

颜色值可以在 hsl, rgb, hwb 之间更换
webstorm-change-color.gif


原文地址 : Webstorm Tips
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

UI 设计师

工作内容

一、UI 设计师(APP)

  • 根据产品经理提供的产品需求,对产品的整体美术风格、交互设计、界面结构等做出设计;
  • 负责项目中各种交互界面、图标、LOGO、按钮等相关元素的设计与制作;
  • 能积极与开发沟通,推进界面及交互设计的最终实现。
  • 对页面进行优化,使用户操作更趋于人性化。
  • 进行界面完成后的尺寸标注工作
    • 制定相应的颜色以及尺寸规范
    • 进行界面的切图与图标提供工作
  • 辅助开发进行项目进展工作
  • 维护现有的应用产品

二、UI 设计师(网站)

  • 负责网站项目的整体版式、风格设计。
  • 进行对外合作的广告及专题设计。
  • 与前端配合进行界面切图以及图标提供工作
  • 进行尺寸的标注工作
  • 辅助开发进行项目进展工作
  • 以用户为中心的设计理念,对页面进行优化,改善网站用户体验。

三、广告设计

  • 设计相关的广告图片,PC 端与 APP 端

四、其他部分
UI 标准的指定
用户体验设计
交互设计

评级

初级

视觉设计的基础级别
视觉能力:

  1. 能用 PS 等绘图工具进行矢量或像素类的图形绘制
  2. 掌握 PS 中的图层样式、滤镜、图层叠加等功能,能模仿别人作品中所体现的造型和质感。比如知道了怎么用矢量或非矢量方式去勾画和调整图形,而不会造成边缘模糊等问题的;怎么用高光+渐变去体现形体质感的;知道哪里能弄到一些材质去贴上去得到什么样的效果等等。
  3. 懂得输出切图、懂得程序实现的方式和术语之类的。

交互能力:

  1. 知道交互是啥,明白软件流程图。
  2. 能在没有交互图的情况下看一个参考图或是领导的几句话就去做设计,也就是知道上哪去抄一些界面的交互过来的。

这就是初级的 UI 设计师,我相信大部分设计师都是停留在这个阶段,毕竟这样要达到,都有一定的难度的。需要很多临摹,很多实践,才能积累下来的。

中级

视觉设计需要突破到一个新领域的级别
视觉能力:

  1. 满足初级能力
  2. 能达到像素级的刻画,比如 16x16 的图标修整等,眼睛也要有像素级别的眼睛,一看就知道那里不对劲和是不是没有对齐等等。为何不把小图标的修正放到 C,是觉得这个确实不是每个公司都需要那样去做的。
  3. 懂得质感与色彩的搭配,了解整个行业的设计动向,比如风格、质感等,并且掌握其实现的技巧和懂得利用这些知识去创新设计。
  4. 有一定的设计理论,并能利用这些理论去输出进行教学,或是用于说服你的领导或客户。

交互能力: 5. 对于交互有比较深入的理解,并且已经能够胜任交互设计的工作。 6. 有一定的沟通能力,能清晰的表述整个设计的逻辑和交互方式。 7. 能根据产品文档或领导口述进行交互图制作,并且参与 PK 会议,能不能胜出我觉得还是靠别人是不是认可你的,不是靠自己说了就能赢的,哈哈。
用研能力: 8. 掌握用研基础,实时关注用户的反馈,认真去分析用户反馈的真实问题在哪,而不是盲目听从和跟风。 9. 掌握用研的方式和分析其有效性

高级

一个把控和平衡全局级别
综合能力:

  1. 满足中级能力,这里会发现已经不分交互和视觉或用研来说了,因为本身这几个领域在我看来它就是一体化的东西,不能拆分的。拆分就是等于缺胳膊少腿的,等别人的决定干事情,自己天天就等拍板那种。
  2. 能把交互和视觉两者都完美的做一个结合,做到可牺牲交互,或可牺牲视觉效果,拿捏自由。其实这里甚至会涉及到产品功能一些删减和修改其原有的功能方式都说不准。
  3. 有一定的程序开发逻辑知识,这里指的逻辑不是程序源代码,而是开发的一些实现方式,比如我在做 QQ 输入法的时候,设计皮肤底层就是和程序去 PK 皮肤底层的实现,并不需要懂代码,但是要把原理都解释清晰和皮肤实现架构都构造好。
  4. 设计初期能对交互框架,视觉框架,程序实现框架都很清晰的去了解,做到一次大的设计支持,而后面的版本变更不用有太大的改动,比如资源加载简便和多次复用。当然这里会存在很多因开发时间不允许的情况,那就看怎么去衡量这个问题了。

作为视觉来说,如果实现皮肤的底层强大,足以支持未来几年的需求,那么之后的工作会顺利很多的。这里又要拿 QQ 输入法举例,当时的底层设计的时候支持蒙板遮罩、Apng 动态图、切图带链接等。所以到今天为之,这个底层可以适应各种皮肤,如相框皮肤、动态皮肤、点击皮肤进入网站等等。而听说搜狗输入法现在的皮肤底层有 3 套架构在支持不同类型的皮肤,这就是当初设计的时候考虑欠缺或是开发时间限定的原因。这会导致安装包臃肿和系统缓慢,或是皮肤实现困难工作量大等问题。 5. 从用户研究中分析出准确的原因,并且提出实效的建议去解决问题。 6. 熟悉各种终端的交互和视觉规范或风格特性等。比如 pc、mac、ios、安卓之类的,并且在上面利用其特性合理的进行设计。

神级

所谓的 S,就是未能划分的,全都丢到 S 去,一般这样的情况的时候,人的能力点都非常突出和饱满了,就会往自己的方向去走了。那就是在这个阶段会孵化出独特的个人能力和魅力,会产生出不同形态的神级设计师。
综合能力:

  1. 高级产品经理能力。把产品经理的能力放到神级里面来说,因为能不被产品牵着头来走的视觉本身就少之又少,所以能自我控制产品方向的时候,那就完美了。

那么,如果单纯设计一个外形的话,看似是一个视觉的事情,但是要由产品去定义其个性和功能点,交互定义其行为方式,视觉最终去实现的话,通常都会出现很有趣的状态,我把他称为肢解再组合的产物。 2. 自我体现能力,通常这个时候,应该是积累很多的了,会根据经验和能力产生出独特的念能力的。
也就是说,会形成一个独特的神级形态,比如有些是喜欢在级别 B 的基础上,做专攻视觉的大师,把视觉发挥到极致,不管多么不合理的交互,都可以用视觉去弥补。或则是在 A 的基础上,做产品经理,来让引导整个局面等等,这里其实可以不用说特别多的例子,因为在这里去分化的话,是不可控的,结果也是很精彩的。 3. 神级设计师的地位,因为在这个行业里面的时间很长才能达到,所以资格会很老,加上嘴巴也很能说,自然会各有千秋。


原文地址 : UI 设计师
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

常用资料

语法

Markdown

Markdown 是编写技术文档的主要工具, 需要掌握

版本管理

版本约定

开发时候需要对项目设定版本号, 版本号遵循以下开源规则, 版本号不是十进制, 版本号在 gitflow 流程中可以得到很好的应用

Git 工具

常用工具

服务

三方登录

文档

工欲善其事, 必先利其器, 好好使用则能够事半功倍.

PHP

IDE

[译+] 常用 Phpstorm tips

Laravel

前端(Fe)

IP


原文地址 : 常用资料
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

行政 - 岗位职责

工作内容

  • 配合技术部主管相关工作
    • 会议跟踪及会议记录
    • 辅助文秘工作
  • 技术中心文件归档
  • 账号管理
    • 系统使用的开发者账号
    • app 上线开发者账号(IOS/Android)
    • 钉钉管理
    • 企业邮箱管理
  • 整理产品文档
  • app/平台上线跟踪及上线通知
  • 技术中心员工入职引导/离职善后
    • 账号分配
    • 新人指引
    • 离职账号清理
  • 技术部卫生跟踪
  • 日常工作管理

原文地址 : 行政 - 岗位职责
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

技术经理岗位职责以及任职要求

岗位职责

任务管理:开发工作量评估、定立开发流程, 技术选型、分配和追踪开发任务
质量管理:代码 review、开发风险判断/报告/协调解决
效率提升:代码底层研发和培训、最佳代码实践规范总结与推广、自动化生产工具、自动化部署工具
技术能力提升:招聘面试、试题主拟、新人指导、项目复盘与改进
文档管理: 对文档进行统一管理, 并要求技术人员在开发过程中完善开发文档
技术评定: 对在岗技术人员进行合理的技术评定, 并有有效的晋升机制
组建平台研发部,与架构师共建软件公共平台,方便各条产品业务线研发
通过技术平台、通过高一层的职权,管理和协调公司各个部门与本部门各条线。
推广落实绩效的有关内容
对员工状态进行跟踪, 异常问题进行处理
关注同事的生活状态, 如果有需要公司帮助的, 及时提出
对技术提升有严格, 要求, 需要有技术部分的进步

任职要求

1、技术愿景:识别新技术、利用新技术、整合新技术、驱动新技术。驱动商业战略、驱动产品战略
2、技术架构:建立主营业务中的技术架构与实施模式,建立技术体系标准
3、流程制度:建立高质量,高效率的技术团队。健全的项目管理体系;完善的员工能力发展体系
4、知识培训:建立以研发内容为主的知识库管理体系、技术分享与技术文化的体系
5、业务支撑:与其它部门的沟通协作,如 HR、市场、BD、财务、客服等提供技术管理接口;在产品技术层面能够领先于业内同行
6、影响力:在公司内部与行业中具备一定影响力与口碑
7、视野&格局&执行力:看待问题全面,具有强大的学习力,具备技术前瞻力,敏锐的市场嗅觉,战略落地的能力


原文地址 : 技术经理岗位职责以及任职要求
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[原] 在 PhpStorm 中使用 Xdebug 远程调试 PHP 程序(框架原生均适用)

序言

Xdebug 作为 PHP 调试工具,提供了丰富的调试函数和配置,可以直观的看到 PHP 源代码的步进和性能数据,以便优化 PHP 代码。
使用 phpstorm + xdebug 来调试 php 程序是借助强大的 IDE 监听功能, 更方便的调试程序. 提高我们的编码效率, 固然 var_dump, print_r 等函数也能提供相应的功能, 但是自动化的工具更能够事半功倍. 下面我根据自己的使用介绍下如何进行调试和配置.
一种方式是用外部设置的 session, 另外一种是在 phpstorm 中配置页面入口然后使用内置的监听来访问, 原理相同, 下面我们从原理开始讲解

调试原理

配置调试环境

1) 配置 xdebug

这里使用了最小化配置, 对于 profile 等功能没有配置

1
2
3
4
5
[xdebug]
zend_extension="/usr/local/opt/php70-xdebug/xdebug.so"
xdebug.remote_enable=1 # 启用远程调试
xdebug.remote_connect_back=1 # 忽略 remote_host 配置, 不关注主机配置, 开发者使用最舒服
xdebug.remote_port=9050 # 监听端口

注意 这里监听端口默认是 9000 , 和 php 默认监听重复, 注意尽量不用使用 9000, 以免出现不生效的情况.

2) 设置 phpstorm 配置并开启监听

这里是让 phpstorm 通过监听端口的方式获取到 xdebug 断点传送过来的数据

2.1) 配置端口

我们这里监听的是 9500 端口, 和 xdebug 配置监听数据端口一致

2.2) 开启 phpstorm 数据监听

切换 “开始监听 PHP 调试连接” 按钮。

3) 在 phpstorm 中设置断点

点击行号右侧空白, 设置断点

4) 设置 debug session

debug session 的工具的目的是设置一个 cookie, 让每次发送数据的时候都会携带这个 cookie, 从而识别监听.

4.1) 安装工具

安装 chrome 扩展 Xdebug helper

4.2) 点击 图标设置 session


已经设置了 cookie, Key 是 XDEBUG_SESSION, 值是 PHPSTORM, 我认为这里的值无关紧要, 对于 phpstorm 来说, 是能够监控到的.

5) 运行页面

这里我们在断点位置可以看到输出的内容项目

另一种方式: 内部调用

这里的另外一种方式的服务器配置方式和流程完全一致, 就是第四步和第五步有所不同, 实现的原理是在 phpstorm 中设置运行的服务器, 然后通过 debug 模式自动设置 XDEBUG_SESSION, 并且自动开启监听.

内部调用: 4) 设置 debug session

4.1) 设置 web 访问的服务器

例如我这里的本地域名是 l.dailian.sour-lemon.com, 我们需要配置一个本地服务器来打开这个页面, 我们首先配置一台服务器.

注意 这里的配置的域名是你本地已经配置好开发环境的域名, 端口号是 本地开发所使用的端口, 我这里是 l.dailian.sour-lemon.com 和 80

4.2) 配置调试页面

我们这里创建的调试页面的类型是 PHP Web Application, 服务器选择的是刚才已经建立好的服务器

内部调用: 5) 运行测试页面

这样运行的情况下上面的 2.2) 开启phpstorm 数据监听 步骤可以忽略掉, 这里不需要开启这个监听.

5.1) 开始 debug

点击 debug 按钮, 这里会自动打开一个页面并且传递一个唯一的 ID(可能是进程 ID)作为 debug 值

打开的 url 地址是: [http://l.dailian.sour-lemon.com/?XDEBUG_SESSION_START=13608](http://l.dailian.sour-lemon.com/?XDEBUG_SESSION_START=13608), 这里的数值是会变动的.

5.2) 查看 debug 面板

打开 debug 面板, 会看到相对应的监听 idekey, 这里和上一步设置的 key 是一致的, 同样也和 cookie 中的设置的 XDEBUG_SESSION 值一致

其他帮助

1. 查看兼容性

第一次运行的时候可以通过 phpstorm 自带的工具来检查配置的兼容性.
Run > Web Server Debug Validation

2. debug 帮助面板说明


左侧
绿色三角形 : Resume Program,表示將继续执行,直到下一个中断点停止。
红色方形   : Stop,表示中断当前程序调试。
上方
第一个图形示 : Step Over,跳过当前函数。
第二个图形示 : Step Into,进入当前函数內部的程序(相当于观察程序一步一步执行)。
第三个图形示 : Force Step Into,強制进入当前函数內部的程序。
第四个图形示 : Step Out,跳出当前函数內部的程式。
第五个图形示 : Run to Cursor,定位到当前光标。
框架说明
Frames : 加载的文件列表
Variables : 可以观察到所有全局变量、当前局部变量的数值
Watches : 可以新增变量,观察变量随着程序执行的变化。

参考文章


原文地址 : [原] 在 PhpStorm 中使用 Xdebug 远程调试 PHP 程序(框架原生均适用)
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[原] 在 PhpStorm 中使用 Xdebug 生成 php 的 Profiler

说明

以下内容摘抄自 profiling PHP 脚本

xdebug 的 profiler 是一个强大的工具,它能分析 PHP 代码,探测瓶颈,或者通常意义上来说查看哪部分代码运行缓慢以及可以使用速度提升。Xdebug 2 分析器输出一种兼容 cachegrind 文件格式的分析信息。这允许你能使用出色的 KCacheGrind 工具(Linux,KDE)来分析你的 profiling 数据。在 Linux 可以使用你最喜欢的包管理器安装 KCacheGrind。
在 windows 系统上,有预编译的 QCacheGrind 二进制程序(QCacheGrind 是没有 KDE 绑定的 KCacheGrind)。
在 Mac OSX 系统上,这里也有怎样安装 QCacheGrind 的说明
Windows 用户可以选择性的使用 WinCacheGrind。它的功能不同于 KCacheGrind,所以 这个页面的 KCacheGrind 使用文档章节不适用于这个程序。WinCacheGrind 目前不支持 Xdebug 2.3 引入的 cachegrind 文件格式的的文件和函数压缩。
这也有一种可替代 profile 信息演示的工具叫做 xdebugtoolkit。一款基于 web 前端叫做 Webgrind,和一款基于 java 的工具叫做 XCallGraph
如果你不能使用 KDE(或者不想使用 KDE)的 kcachegrind 包,可以用 perl 脚本 “ct_annotate”,它能从分析器跟踪文件生成 ASCII 输出。

配置

1) Xdebug 配置

这里依旧使用最小化配置

1
2
3
4
5
; profiler
xdebug.profiler_enable = 0; ; 关闭永久生成profiler
xdebug.profiler_enable_trigger = 1; ; 启用 session 触发 profiler
xdebug.profiler_output_dir = "/data/profiler_dir" ; 输出的目录
zend_extension = "/usr/local/opt/php70-xdebug/xdebug.so"

配置完成之后重启 php-fpm 或者 apache

2) 安装 xdebug 工具

安装 chrome 扩展 Xdebug helper

3) 启用 Xdebug helper 的 profiler 工具

4) 刷新页面, 查看设定的文件夹

在上边设定的文件夹中会生成 profiler 文件

Xdebug 生成的结果是 CacheGrind 格式

5) 使用工具来分析 profiler 文件

这里我使用 phpstorm 的分析工具来查看
Tools > Analyze Xdebug Profiler Snapshot
选择生成的 输出文件, 可以看到文件的解析信息, 这个对于分析自己写的php代码会有很大益处

参考文档


原文地址 : [原] 在 PhpStorm 中使用 Xdebug 生成 php 的 Profiler
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

数据架构师 - 岗位职责

数据架构师岗位职责:
1、主导数据中台系统数据架构设计,编写相关技术文档;
2、主导公司数据分析工具集的落地,搜索产品、图分析、时空分析、自定义建模分析工具,交互分析工具,统计报表分析等产品设计;
3、基于项目需求,编写技术方案,为公司大数据项目落地提供技术指导;
4、把握大数据最新技术应用及发展方向,开展相应技术预研;
5、跟踪大数据行业进展及市场动态,不断创新完善设计方法论和解决方案,能够突破创新。
任职要求:
1.精通离线和实时数据处理和图计算框架等;
2.熟悉大数据技术生态圈,精通大数据技术架构,有大数据平台构建经验;
3.有实际大规模数据(10TB 级以上)处理经验优先;
4.有数据治理或人工智能相关项目经验;
5.本科及以上学历,4 年以上工作经验; .
6.具有项且管理经验优先


原文地址 : 数据架构师 - 岗位职责
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

SameSite 设置导致的 SessionId 重新生成

首先需要知道的是: 什么是 SameSite ? 这里有文章做了详细的描述


本来计划的是使用 Session 来进行中间存储, 但是由于 Cookie 的安全性问题导致 Session 一直没有获取到, 因为是 严格模式, 所以三方过来的时候是不带任何 Cookie 的, 导致服务器一直生成 SessionID.


原文地址 : SameSite 设置导致的 SessionId 重新生成
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Android 开发 - 岗位职责_评级

岗位职责

  • 负责 Android 手机客户端软件的设计及开发,根据项目的具体要求,完成任务目标
  • 负责工程中主要功能的代码实现,调试及后期维护
  • 负责根据其他开发组提供的数据接口进行数据交互
  • 负责编制 Android 项目相关的技术文档
  • 完成 Android 项目的日常升级,解决测试,领导提交的 bug 和改进建议
  • 协助测试人员完成软件的测试
  • 负责软件集成,部署,发布等工作
  • 严格遵守相关开发工具的编码规范,优化代码
  • 与其他员工合作开发,共同进行产品的开发,维护以及测试
  • 对 Android 项目进行版本控制及分支管理
  • 配合领导管理,完成领导安排的其他临时任务, 遵守公司相关制度

岗位要求

岗位评级

见习工程师

Title : 实习生(student engineer)
[1500-3000]

  1. 掌握基本的 Android 应用开发和调试技能,了解 Android SDK,会用 Eclipse,AS 等开发工具;
  2. 掌握基础控件、UI 布局,能够处理多分辨率适配;
  3. 具有较强的团队协作精神及高度的责任心,会使用 SVN,GIT 等协同开发工具;
  4. 了解面向对象编程思想,了解 MVC、MVP、MVVM,了解 JSON、XML 等数据解析。

    补充:

可以写出 UI 界面,完成基本需求功能,会用开源框架以及开源控件,甚至会改造成符合自己项目的,了解一些 android 源码,但是知识面比较单一,懂数据结构,设计模式,计算机网络(OSI7 层模型每一层),数据库,服务器,熟练各大开源库,熟悉 Git,会造些轮子,会翻阅 android 源码,会逛各大技术网站,对新技术敏感(RxJava,Retrofit,Dagger,MVP,kotlin……),会反编译去研究别人 APP。
完全掌握 View 绘制过程,消息处理机制,事件分发机制,进程间通讯,NDK 开发。有一些不错的作品。

初级工程师

Title : 菜鸟(junior engineer)
[3000-5000]

  1. 熟悉 Android 平台下 GUI 设计和实现;
  2. 能够熟练配置 Android 开发环境, 有 1 年以上 Android 开发经验
  3. 具备扎实的 java 基础;熟练掌握 B/S、C/S 开发,有实际项目经验;
  4. 对数据结构、基本算法熟练掌握,并具备基本的算法设计能力;
  5. 优秀的文档编写和语言表达能力,良好的中英文阅读水平;
  6. 必须具备良好的编程习惯;对待工作认真负责,有较强独立解决问题的能力。

中级工程师

Title : 大虾(intermediate engineer)
[5000-7000]

  1. 对各种系统版本和机器适配有充分的经验
  2. 熟悉性能调优,崩溃处理
  3. 熟悉 UI 表现和用户体验
  4. 理解框架和背后的设计,而不是简单的 API 堆砌
  5. 对 UI 控件有丰富经验,包括自绘控件和动画
  6. 扎实的编程功底,能享受编程乐趣
  7. 高效的学习能力和分析解决问题能力

    2 年以上 android 开发经验

写一些项目中要用的自定义控件,并优化出部分功能集成到工具类,能把控整体项目架构,搭出基本框架,可能耦合性高,扩展性不抢,看懂过 android 部分源码,知识面比较广。

高级工程师

Title : 大牛/专家(senior engineer)
[7000-9000]

  1. 熟悉 Android OS 系统体系结构、framework 层;
  2. 良好的 Java 技术功底,精通多线程、socket 通信、文件操作等 java 底层技术;
  3. 精通 Android 的基本组件使用,熟练使用 Android 各种布局与控件,熟练运用各种动画特效;
  4. 熟悉 View 的绘制原理,精通自定义动画以及自定 View 的开发,熟悉常用组件和框架的实现原理
  5. 有丰富的 Android 性能优化经验,善于解决系统崩溃,内存溢出和兼容性问题;
  6. 熟悉 JNI 技术和代码混淆
  7. 有单元测试、自动化测验及相关框架经验;
  8. 有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低,代码注释清晰;
  9. 对新技术有一定的创新和优化能力

    本科或以上学历,计算机软件相关专业;

3 年以上 Android 开发经验;
搭项目框架,解耦,扩展性强,造专业的轮子,优化程序性能,掌握些黑科技,研究 android 源码,知识面设计广而深

架构师

Title: 大神/骨灰(android architect)
[9000 以上]

  1. 精通 Java 平台开发,熟悉面向对象设计方法和常用设计模式;
  2. 精通 Android 框架,深入了解底层服务、Binder IPC、SurfaceFlinger 等技术;
  3. 精通 Android UI 布局开发/Animation/OpenGL|ES/Multimedia 开发技术;
  4. 有丰富的软件架构设计经验,能快速搭建、调试或重构大规模软件代码;
  5. 掌握 JNI 技术,能熟练使用 Android SDK,能独立进行应用程序开发和移植;
  6. 精通 Android 多线程,对 HTTP/HTTPS/TCP/Socket 等网络通信协议有深刻理解和经验;
  7. 有足够的软件安全意识,掌握数据加密、代码混淆、防破解、性能优化等技术;

    掌握两种以上开发语言或开发平台、全栈等技能

对新技术领域有较强的探索性研究能力
可根据实际需要加入学历,开发年限等附加条件


原文地址 : Android 开发 - 岗位职责_评级
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[转]如何使用 Phpstorm 中的部署(Deployment)功能

原文地址 : 如何在 Webstorm/Phpstorm 中设置连接 FTP,并快速进行文件比较,上传下载,同步等操作
Phpstorm 除了能直接打开 localhost 文件之外,还可以连接 FTP,除了完成正常的数据传递任务之外,还可以进行本地文件与服务端文件的异同比较,同一文件自动匹配目录上传,下载,这些功能是平常 IDE,FTP 软件中少见的,而且是很耗工作时间的一个操作。换句话说,在 Webstorm/Phpstorm 中操作 ftp 能找到原来版本控制的感觉。唯一的缺点是:上传,下载的打开链接要稍费时间,适合的场景在于单文件的编辑,这个如果网速够快一般可以忽略,而且就个人体验,虽然链接的速度稍慢,传输的速度并不慢。

  1. 设置: 设置的入口有两处,

a. Tools->Deployment->configruation

b. File->Settings->Deployment->configruation

单击左上角加号新增一个 FTP 服务连接 然后配置 FTP host,username,pwd 等信息,配置好之后,可以 Test FTP connection 测试 FTP 是否连接成功。 然后点击 Root path 三点,如果有 FTP 服务端的目录读取出来,那就没问题,如果读取不出来,则在下面的 Advanced options 中选择 Passive mode(被动模式)。 然后在 Web server root URL 中填写域名信息或者空间商提供的免费三级域名。 然后在 Mappings 选择映射目录分别为本地,发布或 web 路径。

  1. 出口:

在与 ftp 连接的项目文件右击就能发现 deployment,分别有四个选项(这个选项只有在连接成功后才能显示):

1). upload to ...         上传到服务端
2). Download from ...     从服务端拉
3). Compare with Deployed Version on ...     本地版本与服务端版本进行比较

4). Sync with Deployed to ...     比较之外还可以直接进行操作.(3,4 的差别在于,3 只能浏览不能操作,4 可以操作)。

  1. 显示扩展面板     Tools->Deployment->configruation->Browse Remote host


成功打开之后:

打开的目的在于对文件的方便编辑,可以这样操作:

  1. 快捷操作

a. 可以在 keymap 中添加相应的快捷键操作。

b. 可以在 toolbar 上添加常用的图标以方便操作,为了防止误操作,建议操作的图标之间最好有隔离图标,虽然误操作可以利用本地历史记录找回来,但工作效率可能有所下降。

另外提供除了版本控制之外的一份本地历史记录,多次挽救我于生死边缘:
右键 -> localhost history -> show history
Pub label 是对当前历史记录的一个名称记录


原文地址 : [转]如何使用 Phpstorm 中的部署(Deployment)功能
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Http 相关定义

状态码

一些常见的状态码为:
200 - 服务器成功返回网页
404 - 请求的网页不存在
503 - 服务不可用
详细分解:

1xx(临时响应)

表示临时响应并需要请求者继续执行操作的状态代码。
代码 说明
100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功)

表示成功处理了请求的状态代码。
代码 说明
200 (成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。

3xx (重定向)

表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
代码 说明
300 (多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误)

这些状态代码表示请求可能出错,妨碍了服务器的处理。
代码 说明
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
405 (方法禁用) 禁用请求中指定的方法。
406 (不接受) 无法使用请求的内容特性响应请求的网页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408 (请求超时) 服务器等候请求时发生超时。
409 (冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。
499  (客户端超时) 报错的核心是 nginx 要给客户端吐数据时发现客户端已经断开连接。

5xx(服务器错误)

这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
代码 说明
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

统计相关

1.PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量,PV 值就是所有访问者在 24 小时(0 点到 24 点)内看了某个网站多少个页面或某个网页多少次。PV 是指页面刷新的次数,每一次页面刷新,就算做一次 PV 流量
2.UV(unique visitor)即独立访客数,指访问某个站点或点击某个网页的不同 IP 地址的人数。在同一天内,UV 只记录第一次进入网站的具有独立 IP 的访问者,在同一天内再次访问该网站则不计数
3.PV/UV 就是回平均一个独立访问者所浏览的页面访问量


原文地址 : Http 相关定义
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

运维 - 岗位职责

例行工作

  • 访问请求高于 300 ms 的链接定时发送,过滤唯一性链接(每周两次发送)
  • 404 日志错误链接定时发送(每日一次)

工作职责

一、 开发环境

  • 1、规整开发环境,设定自动开发环境部署,构架自动开发平台 devauto 建设。
  • 2、管理 git/svn 代码版本控制并实现本地、测试与线上代码的管控和流程优化
  • 3、按照开发要求,提前搭建、添置开发新组件、环境和系统;
  • 4、构建内部开发 WIKI 知识体系,为技术员工入职技术培训提供支撑,尽快熟悉代码开发流程与规范;

二、线上服务器管控

  • 1、根据产品要求,构建可靠的网站、应用服务平台并保证正常运行;
  • 2、保障线上网站 ixdcw 平台正常运行。使用 Zabbix NAGIOS 等监控软件,对服务进行监控,异常处理,自动恢复,系统瓶颈分析和报表周期汇报;
  • 3、监控数据库的正常运行。获取慢查询信息,并自动去重复,发送给指定的开发人员对数据进行优化和代码调整;每天进行一次汇报;
  • 4、网站数据访问分析;分类整理网站访问日志、APP 的访问日志并做汇总和分析,并自动发送给指定人员。每天一次。每月 1 次大汇总;
  • 5、部署自动化运维工具 ansible 或 SaltStack 提高对服务器平滑部署和管理的可行性和效率;

三、系统安全

  • 1、设定信息发布堡垒机,ssh 安全连接堡垒机,合理分配使用账户,并使用周期检查和修改密码方式,保证信息发布入口安全;
  • 2、设定测试环境访问限定、mysql 连接安全、优化系统运行账户安全、运行权限和登陆日志安全检查,并定期汇总;
  • 3、部署硬件防火墙(软件防火墙),和入侵检测系统并设定合适测试,防止 CC 工具和 DDOS 等网络攻击;
  • 4、应用服务器(php nginx lvs mysql)设定合理的防火墙策略,对异常请求和访问进行自动过滤和攻击防范,强加安全;
  • 5、关注漏洞网站,针对系统漏洞和应用漏洞进行组件升级、应用升级和系统升级。
  • 6、定期对网站进行风险评估、压力测试和应用访问统计来升级硬件、拓展服务。
  • 7、定期更换关键系统的密码。

四、数据安全

  • 1、每日对开发人员提交的代码库定时备份;
  • 2、定时备份开发人员使用的数据库和数据库结构;
  • 3、每天对线上运营服务器数据库进行完整备份、完整单表备份、完整数据结构备份。并使用主从库来保证数据的实时性;
  • 4、同步备份数据至本地服务系统,并保留归档;
  • 5、设定高可用 HA MYSQL、保证数据库故障后的无缝接管;

五、其他需求

  • 1、对各种系统、服务运行日志进行分析,针对性优化系统;
  • 2、根据开发和其他部门要求,完成新系统的构建和二次开发;
  • 3、领导安排的其他事宜;

工作内容

运维工程师详细工作内容

  • 1.设定所有服务器的监控报警机制,并发送报警信息至 js_xlq 和js_zdy@ixdcw.com;
  • 2.设定系统故障后的自动重启 shell 脚本实现和接管机制 nginx 的反向代理存活机制或 Keepalived 检测机制;
  • 3.设定图片服务器的防爬功能,时时关注异常抓取并设定封堵;采用 nginx 的三方插件或自行写 shell 实现;
  • 4、分析 nginx php mysql linux 的访问日志,并把网站、api 访问统计、数据库 0.5ms 慢查询日志、PHP feata error、汇总自动发送到指定人员(使用 python 来是实现分析并发送邮件),关注前段 static 下的图片、css、错误日志记录并发送前段。所有以 show ,list 访问不存在的死链,统计后发送 SEO;
  • 5、数据库的实时备份从备份、每日的完整备份和完整单表备份;并归档到本地;采用主从库设定、binlog 和 shell 来实现;
  • 6、防止 DDOS 和 CC 攻击 WAF 软件部署; 采用 LUA 的扩展实现;
  • 7、优化开发人员环境并开发部署;(采用张宴使用的方式进行)

运维考题

  1. 如何监控一个 ip 访问异常并进行处理

原文地址 : 运维 - 岗位职责
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

iOS 开发工程师

工作内容

  • 对项目负责,负责软件项目的详细设计、编码和内部测试的组织实施,完成分配项目的实施和技术支持工作。
  • 与项目相关人员配合共同完成应用软件的开发工作;
    • IOS 平台开发环境(平台及工具软件)的设计、实现和维护
    • 按照项工作目计划在保证质量的前提下、按时完成开发任务
    • 负责与服务器端调试,确保应用质量
    • 适应性维护
    • 提供技术指导,促进系统操作技术和译码编程的有效使用
  • 参与需求调研、项目可行性分析、技术可行性分析和需求分析。
  • 熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
  • 负责向项目负责人及时反馈软件开发中的情况,并根据实际情况提出改进建议。
  • 参与软件开发和维护过程中重大技术问题的解决。
  • 追踪上线情况已经线上存在问题。
  • 跟踪 IT 技术进展,做好技术储备

初级工程师:

  • 精通 OC/Swift 语言基础 精通 UIKIT 熟悉网络通信机制 具备主流开源框架使用经验,研究过源码,并懂得他们的原理,
  • 完成基本的页面搭建,通过三方库的引用于使用完成功能
  • 熟悉常用网络框架并使用网络框架进行上传
  • 熟悉 iOS 常用内置的 API
    • 消息传递:代理、block、通知;
    • 数据存储:sqlite、xml、json;
  • 能根据业务逻辑,完成数据与 UI 的对接
    • 第三方:分享、登录、支付等;
  • 了解视图加载顺序

中级工程师

  • 能够快速完成界面搭建以及较为复杂页面搭建
  • 能够根据项目业务逻辑以及项目需求封装出常用的工具类
  • 熟练常用 iOS 内置 API
  • 能根据业务需要快速选择合适的第三方,并快速完成第三方学习.
  • 了解常用第三方框架底层并能做二次封装
  • 具备基本的架构能力.能够根据项目以及业务方向设计健壮的项目架构 较好的编程习惯
  • 具备一定的产品意识

扎实的编程基础、数据结构、算法基础 深入理解语言机制、内存管理、网络、多线程、GUI、运行时 精通常用设计模式、框架、架构 良好的分析、解决问的能力 熟悉 Core 相关的框架 单元测试
能够接受各种新功能的开发(这里是指,即使你没有做过,但是你仍然可以凭借着学习,解决任何业务需求:例如:蓝牙.AR.摄像头.硬件交互.等)

  1. 音频、视频的使用;
  2. 简单动画效果;
  3. 运行时 runtime、RunLoop;
  4. 线程的使用(GCD&NSOperation);

中级知识点
设计模式
• UIScrollView/UITableView/UICollectionView 的嵌套
• 动态行高
• 通知/代理/block
• 程序启动原理 • 触摸事件/手势
• 图文混编
• Runtime
• NSRunLoop
• GCD
• ReactiveCocoa 开发
• 3DTouch
• 界面渲染
• Charles 花瓶抓包

高级工程师

第三方库安全性评估
架构风险评估,项目风险评估
具备创新并开发出新框架的能力
有自身技术专项领域.在这个领域有积累有造诣,解决公司核心业务.比如项目安全.图形图像处理,音视频.能够帮助公司攻克技术难度,做技术预研.
解决研发过程中的关键问题和技术难题(方案和思路)
调优设备流量、性能、电量
较强的软件设计能力,动态加载,异步绘制框架
对 iOS 内部原理有深刻理解
高级算法:加密等
逆向,OpenGL ES, Metal
iOS 高级知识点
XMPP 加密
Socket
MD5 详解 Base64 加密解密 RSA 非对称加密 AES 对称加密
音频
基础 Core Audio Audio Toolbox OpenAL AVFoundation Speex 语音聊天 AudioQueue/AudioSession Speex 简介
视频
AAC 视频.H264 推流 P2P 传输
直播
直播的技术分析与实现 RTMP 协议 RTMP 直播应用与延时分析 如果做一款 inke 版的 App 推流发布和播放 RTMP FFmpeg 基于 FFmpeg 的推流器 HLS 流媒体传输协议(HTTP Live Streaming) FFmpeg ijkPlayer
算法
简介 冒泡排序 快速排序 插入排序 归并排序 二分查找 希尔排序 动态规划 堆排序

资深工程师:

精通底层原理,数据结构等,可以进行二进制重排
能领导公司相关方面的研究、开创业界一些实践
对公司某一方面的战略规划和未来走向产生影响
精通高性能编程以及性能调优(前期性能瓶颈分析)
灵活运用数据结构、算法解决复杂程序设计问题
提供性能优化、日志搜集、统计分析方案
架构、模块设计
App 内核
底层框架的解读;

  1. 工程架构;
  2. 高级动画效果实现;
  3. 网络编程、socket 编程;
  4. 视频、直播底层技术;
  5. 即时通讯底层技术;
  6. 人脸识别;
  7. 性能检测;

自身:跨平台技术学习、iOS 开发语言学习(Objective-C、swift)、SQL 使用


原文地址 : iOS 开发工程师
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

产品经理 - 岗位职责

工作内容

  • 需求整理, 需求分析
  • 将产品需求转换为产品功能
  • 对需求进行原型设计(PRD, 交互稿)
  • 对功能提升用户体验
  • 优化用户体验, 优化视觉呈现
  • 把控产品质量

任职要求

  • 有一定的行业认知
  • 对产品负责, 对数据负责, 对老板负责
  • 熟练使用 axure 等一种产品交互工具

岗位分级


原文地址 : 产品经理 - 岗位职责
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

C++_C_C# 开发 - 岗位职责

岗位职责:

  1. 维护易代练以及附属项目的代码编写, 调试, 测试和维护
  2. 编写代码注释和开发文档
  3. 对系统进行性能优化, 功能定义以及程序设计
  4. 分析并解决软件开发, 发布, 用户反馈的问题
  5. 按时根据产品经理要求完成功能开发

岗位要求:

  1. 1 年及以上的 C/C++/C#/.net 开发经验,能独立完成 PC 客户端项目开发
  2. 熟悉面向对象编程和多层架构的设计和开发,熟悉常用的设计模式
  3. 精通 C#语言,asp.net 程序开发和 Visual studio 使用
  4. 有 C++ 语言功底视为加分项
  5. 有良好的沟通技能、团队合作能力, 代码协同,责任心强
  6. 有良好的编程风格,具有规范化,标准化的代码编写习惯

原文地址 : C++_C_C# 开发 - 岗位职责
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Git 常见问题

Git 设置代理来访问服务器

全局代理

1
2
3
4
5
6
# 设置代理
$ git config --global http.proxy http://127.0.0.1:1087
$ git config --global https.proxy https://127.0.0.1:1087
# 取消代理
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy

设置项目代理

1
2
3
4
5
6
# 设置代理
$ git config --local http.proxy 127.0.0.1:1086
$ git config --local https.proxy 127.0.0.1:1086
# 取消代理
$ git config --local --unset http.proxy
$ git config --local --unset https.proxy

给指定的 URL 设置代理

1
2
3
4
5
6
[http "https://github.com/"]
proxy = http://127.0.0.1:1086
[https "https://github.com/"]
proxy = http://127.0.0.1:1086
[http "https://my.comapnyserver.com/"]
proxy = ""

Git 保留最新提交记录

1
2
3
4
5
6
7
8
9
10
11
12
# Checkout
git checkout --orphan latest_branch
# Add all the files
git add -A
# Commit the changes
git commit -am "commit message"
# Delete the branch
git branch -D master
# Rename the current branch to master
git branch -m master
# Finally, force update your repository
git push -f origin master

Git 保存请求的账号密码

https 方式每次都要输入密码,按照如下设置即可输入一次就可以很长时间不用再手输入密码。
第一步:设置邮箱和密码

1
2
$ git config --global user.email "your email"
$ git config --global user.name "your username"

根据自己的需求执行下面的任意一条命令
第二步:

1
2
3
4
5
6
7
8
# 设置记住密码(默认15分钟):
$ git config --global credential.helper cache
# 如果想自己设置时间,可以这样做, 这样就设置一个小时之后失效
$ git config credential.helper 'cache --timeout=3600'
# 长期存储密码:
$ git config --global credential.helper store
# 增加远程地址的时候带上密码也是可以的。(推荐)
$ http://yourname:password@git.oschina.net/name/project.git

运行相关命令, 输入账号密码, 如果正确则下次不必重新输入, 在 git 目录中存在两个文件 .gitconfig, .git-credentials, 里边放置的是凭证的信息

Git 推送 github 代码出现 443: Operation timed out 问题

推送到 https://github.com/{username}/{project}.git
fatal: 无法访问 ‘https://github.com/...':Failed to connect to github.com port 443: Operation timed out
Completed with errors, see above
如果出现 raw.githubusercontent.com 之类的问题都可以采用此类方法解决

解决: hosts 中加入 ip 映射
查询真实 IP
通过 IPAddress.com, 输入 github.com 查询到真实 IP 地址, 然后修改 hosts 映射, 这里需要在本地 ping 下指定的查询出来的 ip , 否则也无法访问

删除本地所有的 Tag 并获取服务端所有

1
2
# 删除本地所有tag 并获取服务端所有
$ git tag -l | xargs git tag -d && git fetch --tags

git pull 冲突终极解决方案

服务端 git pull 或 git checkout 报以下错误

Your local changes to the following files would be overwritten by merge
error: Your local changes to the following files would be overwritten by merge:

解决方案:

1
2
$ git reset --hard HEAD
$ git clean -f -d

参考


原文地址 : Git 常见问题
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[转+] 解决 Webstorm 不支持 nodejs 等语法提示和补全

在使用 Webstorm 写 es6、node 的时候,会出现没有语法提示甚至是产生波浪线,例如常用的 require, import

不仅是内置函数语法,不仅是 js,在一些第三方 npm 库(比如 element-ui),在 vue/html 等上也被黄色背景色标上“未知标签名”的语法提示

既影响美观,又不支持代码候选补全,实在对不起 WebStorm 前端开发利器的称号。
解决方法

  1. 设置 Webstorm js 语法支持到 es6(或根据需要选择)

打开 :  Preferences | Languages & Frameworks | JavaScript
将 JavaScript Language version 更改为 项目所需要的版本,

  1. 下载 node 语法库

方法 1: 推荐

阅读更多

PHP 开发 - 岗位职责

岗位职责
把需求或产品实现为用户可用的软件产品

  • 参与项目框架设计、系统分析及流程控制、沟通对接等工作。
  • 独立或者分组进行针对项目需求的功能开发和优化。
  • 拥有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低;
  • 根据项目开发进度和任务分配,开发相应的应用模块。
  • 根据需要不断修改完善项目功能。
  • 参入核心代码的编写
  • 运营数据处理和分析

任职资格

  • 2 年及以上 PHP 开发经验
  • 具有 MySQL 索引优化、查询优化和存储优化经验、PHP 缓存技术、静态化设计方面的经验,要求随时随地贯彻最优化开发的思想,所负责的项目须能承担繁重的访问压力, 熟悉大数据量下性能管理及优化,并有较强数据库规划能力
  • 精通 PHP/MySQL 开发,精通 memcache、squid、redis 等缓存技术者优先;
  • 悉 MVC 开发,掌握部分开源 PHP 框架, Laravel 5 等;
  • 熟悉 Javascript 语言和 HTML 语言熟悉 HTTP 协议及 W3C 相关互联网规范,熟练掌握 XHTML、CSS、 DIV 等页面技术;
  • 熟悉 Unix/Linux 操作系统和开发环境
  • 具有优良的编程风格和习惯, 要求结构清晰、命名规范、逻辑性强、代码冗余率低
  • 有创新思想,敢于挑战新事物,了解用户体验
  • 责任心强,良好的对外沟通和团队协作能力,能承受工作压力, 具有项目管理经验优先
  • 团队协同工具少不了的(Git+)

加分项目:

  1. 有大型负载开发
  2. 能够编写项目技术文档者优先考虑
  3. 有成熟作品和独立开发整站的经验

氛围足够轻松和舒适

  1. 良好的技术提升空间
  2. 全栈/高阶工程师的发展方向
  3. 济南范围内高薪待遇和高薪目标, 有项目管理经验继续加薪
  4. 缴纳五险一金, 法定节假日
  5. 良好的办公环境和高配的 Mac 办公机器
阅读更多

[转] BAT 技术评级

P1、P2 入门

1、了解计算机专业的基础知识,懂计算机的基本操作,掌握一门基础的程序语言即可
2、BAT 一般空缺,为非常低端岗位预留

P3 助理

1、熟练掌握一种语言,掌握一种开发环境
2、了解编译器的原理和实现机制,了解操作系统中的内部机制
3、能独立完成复杂任务,能够发现并解决问题
4、在项目当中可以作为独立的项目组成员

P4 初级专员

1、深入了解一门操作系统,掌握某项领域知识的各种思想原理
2、各种经验、技能、技巧掌握下来,学习一些知名的开源项目
3、对于复杂问题的解决有自己的见解,对于问题的识别、优先级分配有见解,善于寻求资源解决问题
4、可独立领导跨部门的项目;在专业方面能够培训和教导新进员工。

P5 高级工程师

1、做基础研究,研究非数值”计算”
2、在专业领域,对自己所从事的职业具备一定的前瞻性的了解
3、对于复杂问题的解决有自己的见解,对于问题的识别、优先级分配见解尤其有影响力,善于寻求资源解决问题
4、可独立领导跨部门的项目;能够培训和教导新进员工;
5、是专业领域的资深人士;行业外或公司内培养周期较长。

P6 资深工程师

1、在某一专业领域中,对于业界的相关资源及水平比较了解;
2、参与部门相关策略的制定;对部门管理层的在某个领域的判断力产生影响;
3、对事物和复杂问题的分析更有影响力。
4、进行创新。对任何一种简单的东西,需要考虑各种各样的需求,以需求来驱动研究;对各种最基础性的查找结构和算法都了然于胸。

P7 技术专家

1、是某一领域中的资深专家;对某一专业领域的规划和未来走向产生影响
2、有较大的贡献。(首先解决问题必须是比较重要的,其次你要比前辈们在某方面有一个较大的提高,或者你解决的是一个全新的以前没有解决过的问题;最重要的是,主要的思路和方法必须是你自己提供的,不再是在别人的思路基础上进行的优化和改进。)

P8 高级专家

1、在公司内部被认为是某一方面的专家或者在国内的业界范围具备知名度和影响力;
2、对公司某一方面的战略规划和未来走向产生影响;
3、在本领域的思想和研究在公司具备较大的影响力;
4、年薪 80-100w,国内约有 2w 人

P9 资深专家

1、业内知名,对国内/国际相关领域都较为了解;
2、对公司的发展做出重要贡献或业内有相当的成功记录
3、所进行的研究或工作对公司有相当程度的影响;
4、年薪 120-150w,国内约有 0.3W 人

P10 研究员

1、在公司内部被认为是某一方面的专家或者在国内的业界范围具备知名度和影响力;
2、对公司某一方面的战略规划和未来走向产生影响;
3、在本领域的思想和研究在公司具备较大的影响力;
4、使命感驱动。

P11 及以上 科学家

1、业内顶尖人才, 对于国际上相关领域的思想/实践都有独到的见解并颇受尊重,比较有名望;
2、对公司的发展做出重要贡献或业内有相当的成功记录;
3、能领导公司相关方面的研究、开创业界一些实践;
4、所倡导或所开创一些做法对公司的未来有深远的影响;
5、年薪 160w+,国内约有 0.1W 人


原文地址 : [转] BAT 技术评级
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[译+]在 PhpStorm 中配置 Phpunit 的 Test Suite

原文地址 : https://www.liamnorman.com/phpstorm-testsuites/
我是测试驱动开发(TDD)的忠实粉丝,我相信测试可以验证代码库的可靠性和稳定性, 我相信使用 TDD 可以创建稳定的系统并有效地测试软件,确保我的设计符合我想要解决的问题。我倾向于经常进行测试,因为这样就会非常清楚如果系统中的一个变化破坏了什么东西,我马上就知道那是添加的东西并定位到问题所在。Robert “Uncle Bob” Martin 以一种非常优雅的方式总结了这个测试方法
说道 :

每小时都会写几个测试。每天都有写几十次测试。每个月都有几百次测试。在一年的时间里,你将编写数以千计的测试。你可以保留所有这些测试,并随时运行它们! 你什么时候运行它们呢? 任何时间! 任何时候你做了任何改变都可以运行!

如果你采用这种方法,那么必须经常运行你的测试套件Test Suites,并且以快速和有效的方式运行,作为你工作流程的一部分,从长远来看将节省你的开发时间
我在我的大多数时间开发中使用 PHPStorm, PHPStorm 有一个很棒的单元测试功能,你可以使用它从你的 IDE 运行测试。我们将介绍如何在项目设置并使用 PHPUnit.

阅读更多