赞
踩
万丈高楼平地起。开始,我们将以轻松幽默的方式,从实际工作中的开发痛点出发,以项目全生命周期为主线,对全栈有全局的认识。从整体项目分析开始,培养项目架构思维。
在大前端知识体系中,每个阶段的工程师,需要有不同的知识技能储备。江湖封号程序猿(媛),业内一般称呼软件开发工程师。
初级前端工程师的标准,就是能够完成日常的功能开发和debug,可以在已有的代码基础上做修改,优化和维护;熟练使用平时开发需要用到的工具即可,无需理解原理。这时候需要学习的东西是非常多的,不过由于只要掌握80%(二八法则的比喻,前80%的知识只需要20%的精力学习,后20%深入的知识则需要投入80%的精力)的使用知识,只需要付出20%的精力就能够学会,所以会很有成就感,进步也会非常快。
阶段分析:
需要大量的项目实践经验,至少应用一个框架开发实际项目半年以上,才算真正掌握一个框架的使用。另外就是项目开发过程中运用到的各种工具,每个领域都要熟悉一种,当然,只要熟悉基本操作即可。最后,对于业内的各种话题和思想要有概念,起码做到听说过,大概知道是干什么的。整个初级工程师的学习过程大约会持续1-2年。
学习充电20%:
大量的实际开发经验;足够复杂的业务场景;业内最新信息等。
个人技能80%:
在初级前端工程师的基础上,需要在原理上有更深入的理解。能够从较本质的层面分析和解决问题,需要具有从零搭建一个项目的能立,还要能够找出项目瓶颈和可优化的点。这时候就要触及那剩余的20%的知识了,进步的速度会慢下来,需要一定时间的沉淀。此时要适应这个节奏的变化,要耐得住寂寞,只有厚积才能薄发。
阶段分析:
经过初级工程师的阶段,现在最起码已经掌握了1个框架的使用。与初级相比,知识广度上,不会有特别大的变化,但是深度上就要差出一个档次了。当我们对一个事物熟悉到一定程度时,一般都会将其抽象化,以方便我们了解本质,寻找规律,最后达到触类旁通的境界。所以,如果你隐约的能够将之前你觉得不相关的知识联系起来时,那么知识的深度就已经达到了标准。举个最简单的例子:网络层面的缓存与计算机结构中的内存原理,有多少相似的地方?当然,单是某几个自己最常用的知识点达到足够的深度,就已经称得上是一个合格的中级工程师了。整个过程的积累需要大约2-3年的时间。
学习充电20%:
足够深度的原理干货;自己模拟造轮子;业内最佳实践等。
个人技能80%:
在中级工程师的基础上,具有更好的抽象能力,透过表面看本质。此时已经在开发过程中积累了相当的经验,理解也比较深入,达到了触类旁通的层次,已不局限于框架和库,甚至是前端领域的约束,可以开始自己无中生有的造轮子了。另外,更重要的是对于团队的贡献,要能够成为一个团队的主心骨,明确团队的方向,整合整个团队的力量来做事情。
阶段分析:
此时,自己已经有了多次触类旁通的经验,也就是说自己对于学习一个新知识应该深入到什么程度,已经有了一个比较明确的认知。那么此时的学习诉求便是能够高效的获取其他领域的足够深度的知识。从线到面,构建起一整套的知识系统。中级工程师只要一直积累便可水到渠成的达到这一步。不过,身为高级工程师,也要开始关注技术意外的东西了,比如过管理团队。就像一个初级工程师熟练使用了一个框架之后,要开始学习其他方面的知识一样。高级工程师也就是螺旋上升到了另一个层面,开始了另一个循环而已。到了这个层次,基本已经实现“技术自由”了,而且一定是公司里独当一面的中坚力量。整个过程需要持续3-5年的时间。
学习充电20%:
高效获取足够深度的知识;管理方面的知识;业内趋势的判断等。
个人技能80%:
在业内,要具备一定的技术影响力,以及“代表作”。所作所为可以影响整个公司,乃至整个行业。从流行的追逐者,变成了流行的创造者。当然,能力越大责任越大,公司的决策压力自然也要背负,此时已经不是管理单个团队了,而是对技术方向的全局把控,足够影响公司的战略甚至生存。
阶段分析:
到了这个境界,已经不能够简单的归为技术类了。就像前端高级工程师,已经不仅仅局限于前端这个领域一样。能够达到这个境界,相信已经不需要太多旁人的指手画脚了,能量已经大到足够影响上万人甚至更多。说白了,就是处于金字塔顶端少数的存在。除非转型,那么这个阶段基本可以一直干了,而且是自己挑公司,做自己想做的事,甚至自己当老板。
学习充电20%:
国内外顶级文章;业内痛点及瓶颈;行业及环境宏观分析等。
个人技能80%:
HTML5知识图谱由前端技术专家、CSDN博客专家侯志强(@yisuowushinian)绘制
CSS3知识图谱由前端技术专家、CSDN博客专家侯志强(@yisuowushinian)绘制。
JavaScript知识图谱由Java高级工程师王成委(@jaune161)绘制。
jQuery图谱由CSDN博客专家郭晓湉(@XTQueen_up)绘制。
Node.js知识图谱由腾讯前端高级工程师黄丹华(@danhuang2012)绘制
AngularJS知识图谱由广发证券前端开发工程师李泽扬绘制
React知识图谱由蚂蚁金服前端工程师林展新绘制
大前端就是所有前端的统称,比如Android、iOS、web、Watch等,最接近用户的那一层也就是UI层,然后将其统一起来,就是大前端。大前端最大的特点在于一次开发,同时适用于所有平台,开发者不用为一个APP需要做Android和iOS两种模式而担心。大前端是web统一的时代,利用web不仅能开发出网站,更可以开发手机端web应用和移动端应用程序。
项目规划亦称 “项目设计”。专业人员对项目发起人拟建项目的全面、详细的规划。它是项目方案的具体化,是项目立项、筹资及施工阶段控制的主要依据,直接关系到项目预期目标的实现。项目规划的原则是根据一个研究得出的市场机会及项目发起人组织内的资源状况,使该项目在性能质量、成本及工期三者间达到最优的平衡。
DevOps流程包含:计划(plan)、编码(code)、编译(build)、测试(test)、发布(release)、部署(deploy)、运营(operate)、监控(monitor),这是一个循环的过程。
DevOps是依托容器、自动化、云计算等技术及精益化管理形成的一种项目过程,有效的促进了开发、测试、运营、运维、QA等团队间的协作,使得团队内、跨团队之间的协作得到极大的提升,可以帮助企业做到产品精益化、运营精益化、管理精益化。
从项目的全生命周期来看,DevOps实现了项目全生命周期的团队高效协作、自动化。DevOps的职责包括:开发和运维的紧密协作、测试和运维的自动化、产品持续交付、持续集成。例如DevOps打通了开发和运维之间的隔阂,加之紫定华运维的出现,大大提高了系统部署的稳定性和安全性。
当团队甚至公司之间践行DevOps理念并且团队成员都能有DevOps的思维时,才能真正做到敏捷。
需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。
1、墨刀是一款在线设计编辑原型的工具,特点短平快,适合一些APP,小型pc工程,以及一些频繁迭代的产品,优点协同办公效率比较高,目前国内个别大公司以及中小企业都有用到,个人版本免费,但是使用页面数量有限,编辑后产品都是保存直接保存在云上,很方便。不会出现文件丢失的情况,但是也有缺点,就是在网络不通畅,延迟比较高的时候,很麻烦,原型编辑操作会有卡顿现象以及版本不一致现象,还有原型模板暂时不像axure那么丰富。
2、Axure是是历史悠久的产品经理必备工具,功能齐全,交互方式多样,模板资源最丰富,基本上你想要的效果都可以实现,适合在制作PC端软件,尤其是一些针对偏B端的产品,有着明显的优势,而且有破解版,所以使用成本相对较低,而且相比较墨刀,可以离线工作。缺点吗?当然也有,就是前期稍微学习成本相对于来说上手难一点,不过也比较简单。只要用心也很快可以学会。
3、蓝湖也是国产的一款原型协作平台,在其官网上,蓝湖将自身定位为“简单好用的团队工作台”。使用蓝湖可以导入Sketch/Photoshop和Adobe XD的设计稿(通过插件),并在蓝湖上做自动标注和交互原型。对于设计师来说,可在蓝湖进行设计图管理和自动标注。对于产品经理来说,可以在蓝湖做页面逻辑流程图和汇集产品文档。
4、XMind 是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用、高效的可视化思维软件,强调软件的可扩展、跨平台、稳定性和性能,致力于使用先进的软件技术帮助用户真正意义上提高生产率。
原型设计是交互设计师与PD、PM、网站开发工程师沟通的最好工具。而该块的设计在原则上必须是交互设计师的产物,交互设计以用户为中心的理念会贯穿整个产品。利用交互设计师专业的眼光与经验直接导致该产品的可用性。
安全机制的设计
当接口涉及到用户状态时,每次请求都要带上身份验证信息。
接口数据的设计
接口的数据一般都采用JSON格式进行传输
接口版本的设计
数据的变化,比如增加了旧版本不支持的数据类型
参数的变化,比如新增了参数
接口的废弃,不再使用该接口了
抽象思维
对某种事物进行简化表示或描述的过程,抽象让我们关注要素,隐藏额外细节。
分层思维
为了构建一套复杂系统,我们把整个系统划分成若干个层次,每一层专注解决某个领域的问题,并向上提供服务。有些层次是纵向的,它贯穿所有其它层次,称为共享层。分层也可以认为是抽象的一种方式,将系统抽象分解成若干层次化的模块。
分治思维
对于一个无法一次解决的大问题,我们会先把大问题分解成若干个子问题,如果子问题还无法直接解决,则继续分解成子子问题,直到可以直接解决的程度,这个是分解(divide)的过程;然后将子子问题的解组合拼装成子问题的解,再将子问题的解组合拼装成原问题的解,这个是组合(combine)的过程。
演化思维
在互联网软件系统的整个生命周期过程中,前期的设计和开发大致只占三分,在后面的七分时间里,架构师需要根据用户的反馈对架构进行不断的调整。我认为架构师除了要利用自身的架构设计能力,同时也要学会借助用户反馈和进化的力量,推动架构的持续演进,这个就是演化式架构思维。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。