1. 作为一个前端,如何提高自己的水平
第一,获取相关信息。可以通过浏览招聘信息或者询问身边从事前端工作的朋友来对HTML5大前端以及前端开发的工作内容进行一个初步了解。一般来说,前端开发工程师的工作包括:使用HTML、CSS、JavaScript等专业技术和工具将UI设计稿实现为用户PC端、移动端网页等网站产品,同时处理相关端口的视觉和交互问题等。
第二,打好学习基础很重要。Web前端入门学习的基础内容有HTML5和CSS3,其中包括PC端网站布局、Weapon页面布局两方面。JS交互设计是重点学习部分,这部分需要熟练掌握JavaScript基础语法、JavaScript进阶、JavaScript高级编程、Conquer经典案例等内容。再有前端框架也是重点知识点,现在比较主流的框架有Cue、React、Angular,熟练运用框架可以提升开发效率。
第三,理论结合实践。紧跟潮流发展也很关键,现在微信小程序和小游戏越来越流行,掌握相关技术点可以在岗位竞争中更具优势。比如熟悉React Native技术对于小程序开发很有必要,它可以实现熟练开发出匹配项目需求的功能。
最后,找对适合自己的学习方式至关重要。
2. 和传统开发方式相比,飞算全自动软件工程平台如何保证开发质量
近年来,随着云计算和AI技术的持续落地,数字经济成为我国经济发展的新引擎,企业自动化、数字化和智能化发展已是大势所趋。但智能需求在飞涨,软件从业人员增速却在逐年下滑,同比增长速率已经从2014年的16.1%下滑到4.3%。这意味着我国软件产业的进一步成熟,却也表明为软件开发流程解绑,为开发者赋能已然刻不容缓。
北京时间11月17日,飞算全自动软件工程平台产品的发布便为软件开发流程的管理提供了新的解决思路。据发布会现场介绍,该产品有望促进软件行业发展进入新的阶段,实现标准环节的全自动化,能够实现新一代软件业技术规范,保障数据安全;最为关键的还在于,其可解决企业在软件工程方面的人才缺口问题,实现降本增效,加速数字化转型
粗略来看,当研发部门拿到了来自产品的需求之后,他们需要先进行需求分析和系统架构设计。同时如果企业规模大并发高,那么时下流行的微服务架构则变得必不可少,还需要进行前端界面开发、技术服务支撑系统开发、业务系统开发、AI系统开发、数据系统开发等一系列工作。在完成研发工作后还需要进行系统测试以及运维保障系统的维护,如果对外还有需求,那么开发工作还将更加艰难。
如果只是研发工作量大倒也罢了,但是因为项目是人在开发,所以一系列问题接踵而至。因为高端人才的缺失,开发者招聘尤其困难,技术依赖性很强,而且优质人才管理也是个问题;高端人才不足自然会导致代码质量不高,很多编码内容可读性差、可维护性差且重复度高。
代码质量低,自然会带来很多的重复性难题,开发者需要根据不同的架构和业务规模进行适配,再加上开发工作量的硬性需求,开发周期不可避免被拉长;开发周期拉长,开发者不免要加班,人力成本、运维成本、软硬件投入以及沟通成本又没有降下来。
3. 前端开发的难点到底在什么地方
不同级别的前端面临的难点各不相同,不可一概而论;
业务开发的前端难点在于对业务的理解和把控能力;
平台开发的前端难点在于产品化的把控和推进能力。
观点1:不同级别的前端面临的难点各不相同,不可一概而论。
其他回答有说 CSS 难,有说 CSS 不难的,每个人水平不同,这样争论毫无意义。我刚学前端时觉得 JS/CSS/浏览器兼容问题都很难,现在觉得也就那样,因为前端路子广,办法总比问题多。后来觉得要评估好需求,把控好项目质量比较难,很多时候我们是在干事,在解决问题,不是只埋头写代码,时间一长你会发现前端工作中,技术问题往往比较好解决,反而资源+协作问题比较麻烦。现在对我来说比较难的是快速产品化的能力,如何从无到有去做出一些有价值的东西。
举一个简单粗暴的例子吧:阿里前端很多,P5/P6 一大把,但是 P8/P9 的非常少,为什么?进阶的难点在哪里?
前端开发的难点跟前端进阶的难点是非常相似的。阿里对每个前端层级都有一个标准,这也从侧面回答了这个问题,比如对 P5 来说,难点可能是写好业务代码,保证其灵活性和可维护性,能解决各种适配问题;对 P6 来说则需要独挡一面,能独立 owner 需求,而 P7 则需要在某方面技术有深入理解,等等。
能提出这个问题首先得恭喜题主,说明题主在当前阶段遇到瓶颈了,需要向下一个 level 出击了。
观点2:业务开发的前端难点在于对业务的理解和把控能力。
业务逻辑开发本身并不是难点,谁都可以写。但是对于你自己负责的这块业务,后续业务的发展方向和潜力,你有去了解过吗?当业务方提需求过来时你是只负责执行还是和业务方一起探讨更合理的方案?你有没有给自己负责的产品提过一些建议?做过一些改善措施?如果前端只是作为一个执行者,作为一种被调度的资源,那么即使最终项目取得了好的成绩,跟你有多大关系?你自己会有多大的成就感?
另外一个很重要的点:就是对业务的把控能力。业务方总是会催着上线,开发时间不断被压缩该怎么办?进度不如预期怎么办?开发遇到瓶颈怎么办?发布新功能翻车了怎么办?
我见过有默默加班保证进度的,也有跟需求方重新谈延期的,有发布出问题手足无措的,也有自己默默修复的,有遇到瓶颈一筹莫展的,也有及时跟老板沟通,跟业务方撕逼的… 如何优雅的处理这些问题,有时候比写代码更难。为什么有的人业务代码逻辑混乱,写的一团糟?我不相信是智力问题,反倒更相信是对项目本身没有把控好,本来排了5天工作量的需求被业务方压到了3天,你还能保证写出健壮而不失风度的代码?
观点3:平台开发的前端难点在于产品化的把控和推进能力。
做业务时有人给你提需求,帮你出交互视觉稿,你只要负责写页面就行了。但是在支付宝前端,很多内部平台和技术产品都是技术自己主导,你需要自己发现问题,出方案,设计数据库,自己出页面,这是一个从无到有的创造的过程。并且要保证你做的东西是真正解决问题的,而不是做一些自己觉得很牛逼实际上并没有解决用户痛点的东西,用我老板的话说就是对产品的把控能力,不要跑偏了。前端是最容易做出产品化东西的工程师了,因为后端不会做 UI,UI 不会写代码,唯前端兼顾,这是最大优势。
再一个就是对产品的推进能力了,你做的东西可能需要各种资源?如何争取?可能牵扯到多方利益?如何权衡?东西做出来了如何推广?如何在用户的一片骂声中奋勇前进?
印象中很多平台型产品,刚开始投入使用时都是一片骂声,各种问题,说实话负责这些产品的程序员压力是相当大的,天天被骂还得彻夜帮别人解决问题,还得不断优化系统,你说难不难?
以上三点就是本文所展现的理念,希望能对大家有帮助。
4. 大家有哪些提高前端代码质量的办法
如果这个话题开始深入的话,应该说是差不多三年前了。如果它是从一个浅的研究开始,它应该追溯到2004年到2005年。说什么去学习,去做真实的事,去爱一些东西,实在是太过分了。至于互联网,它对电脑很感兴趣,所以它也很有希望能更早的接触到这个行业。但过去几年的经验并不是给自己贴上标签,定期改善或改变你的位置。这有助于扩展你的思想。遵循上面的前辈,我也讨论时间轴。
开始接触js框架源码,研究了几个月收获寥寥,这期间也学习了canvas做了些H5小游戏,不过总体来说意义不大,然后认识了师傅以后,指导了我学习了面向对象思想,《冒号课堂--编程范式和OOP》看了4遍,学习了很久UML建模和面向对象基础,然后补充了css的基础,找了个全栈实习工作,第一次了解到linux服务器和后端开发,从此疯狂的迷恋linux和vim,补充了计算机网络知识后,学习了nodejs、sass、angular和gulp搭建了个人博客。大四下学期研究jquery源码,毕业。
总之还是多总结经验吧。
5. 前端工程师怎样提高开发效率
前端工程师其实是一个工作很杂的职位,除了要负责切图、写html/css/js外,还要处理一系列的浏览器兼容性问题、优化网页性能等,所以提高前端工程师的开发效率是势在必行的,也是前端共工程化的体现。那么如何提高便可以按照前端工程师涉及的工作点来进行划分。下面我就介绍下平时我在工作中使用的一些提高开发效率的方法。
当然除了以上5点,对于前端来说需要提高开发效率的地方还有很多,可谓任重而道远。希望以上几点能够给初识前端的同学带来启发并能够亲自实践。
6. 怎样做个合格的Web前端开发
首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好。
Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。
其次,优秀的Web前端开发工程师应该具备快速学习能力。Web发展的很快,甚至可以说这些技术几乎每天都在变化!如果没有快速学习能力,就跟不上Web发展的步伐。前端工程师必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而前端工程师的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。
再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。
7. 如何提高前端工作效率
1. 保证界面及用户体验的前提下,写代码的速度是第一要务
不要拘泥于什么技术可用,什么技术不可用。让它在最短的时间内跑起来,在用户体验的过程中完成迭代升级。利用高速的开发流程,为项目创造竞争优势。有些可以用CSS实现的东西,没必要挂JS。然后还跑过来问“我不想用CSS,这段JS为啥不能隐藏滚动条?”这种开发者,不仅是自虐,还是在虐待访客的电脑。
针对某些要求1小时上线的变态项目,大可以用PS直接生成html,什么是标准?什么是规则?这些都是辅助我们制作网站的建议,当我们有实际需求的时候,大可以打破这种标准。标准是人制定的,前端开发者的追求目标,应该是去做制定标准的人,而不要被标准所束缚。当我们有实际需求的时候,当服务器被拖慢速度的时候,不用谁来指挥,自然会去想如何降低带宽压力。让你的团队自发思考,胜过于你拿各种标准来压迫执行。
负面影响:招聘的难度会大大增加,除非每个员工都有股份、或者是你亲自教出来的。不然,拿同样多的薪水,很少有人会自发思考公司的业务。另外,迭代的开发成本也会很高,纯静态展示页还好,加载程序的页面进行结构调整,会增大员工的工作压力。注意仅在合适的项目上玩速度。
2. 开发人员和业务人员尽可能天天都在一起工作
在团队内部,最具有效果并富有效率的沟通方式,就是面对面交谈。
QQ或者MSN,没有任何的语气语调,无法更直接的表述业务的着重点在哪里。容易产生误会。
开发过程中,要避免晦涩的文档及专业术语。每次沟通带上纸笔,说不明白就画,画不明白就抓一个业务坐你身边,让他看着做。领导层要给他们提供所需的环境和支持,有可能的话,抓一个领导坐在身边。减少交接的流程,简化开发文档。一个好的文档,是让开发人员明白每一步的要求是什么。而不在于文档字数的多少。没有文档更好,只要你能给团队讲清楚。
3. 即时响应,高效开发
在某些领域,为什么一些很小的网站可以战胜大的公司?
他们不遵循守则,他们无需层层审批,他们发现什么好的技术可以直接应用到自己的网站上。说服经理,即使很顺利,也需要一个说服的过程。况且有很多计划会夭折在领导层的审批上。用人不疑,如果你有一个不大的项目,如果你有一个可以信任的人,放手让他去做。这个有执行力的人,一定要选好。做正确的事情比做错误的事情要困难很多。
8. 如何提升前端开发速度和效率
时间管理
不同的时间段做不同的事。头脑清醒的时候,做一些难的事情;状态欠佳的时候,做一些简单的事,或干脆出去走走,休息休息。
做事时要专注。在我们专注做事时,要减少外界的干扰,比如带上耳机,将手机开静音。如果此时有人来打扰,稍后来处理他的事情;如果事情比较紧急,则记录下当前的状态,方便切换回来的时候,能迅速进入状态。我们可以尝试使用番茄工作法:在一段时间内(一般是25分钟),只做一件事情,结束后,休息一会,继续做事,以此循环。
实现不靠谱的需求。拒绝不靠谱的需求。
理解需求出现偏差。对于不理解的需求,要及时和 PM 沟通,不要自己揣测。
做与整个项目风格不一致的页面。如果设计师的设计的和当前项目的风格不一致,与其沟通,看是否能用项目中统一的风格(样式)。
想清楚实现思路后,再开始编码。有时候一个好的算法比一个差的,会简单很多。
重复造轮子。
一拿到项目就开始编码。应该熟悉当前项目所用的技术。避免重复实现项目已经实现过的功能。
重复的事情让程序来做。
项目脚手架生成器。基于此快速搭建一个项目。主流的框架都有 xx-cli 项目。也可以用 Yo 自己搭建一个。
自动添加浏览器前缀。可以用 AutoPrefix。
自动生成图片精灵。可以用 Compass。
一键切图。可以用 Cutterman。
代码改变时,浏览器自动刷新。
代码发布前做的一些事情。代码压缩,合并等。
选用合适的框架和第三方库。
用好软件。
安装一些代码补全插件。如 Emmet, Bootstrap Snippents 等
设置一些命令的简写。如,git 可以配置一些简写。
快速定位到项目中的某文件;某方法。
全局搜索,替换。
等等。
熟悉常用快捷键。
敲更少的代码。
能快速启动常用软件。
减少查找的时间。
保持工作环境的整洁。丢掉不用的东西,删除不用的文件。
常用链接的导航。
常用第三方组件整理。我积累了一些,见这里。
自己写的代码参考示例。
文档聚合网站。devdocs。
其他
两个显示屏。
保持身体健康。
做事时,保持一个积极的心态。
不做不必要做的事
优化做事的方式
9. 前端开发工程师的三要素
Web前端开发技术包括三个要素:HTML、CSS和JavaScript,但随着RIA的流行和普及,Flash/Flex、Silverlight、XML和服务器端语言也是前端开发工程师应该掌握的。Web前端开发工程师既要与上游的交互设计师、视觉设计师和产品经理沟通,又要与下游的服务器端工程师沟通,需要掌握的技能非常多。这就从知识的广度上对Web前端开发工程师提出了要求。如果要精于前端开发这一行,也许要先精十行。然而,全才总是少有的。所以,对于不太重要的知识,我们只需要“通”即可。但“通”到什么程度才算够用呢?对于很多初级前端开发工程师来说,这个问题是非常令人迷惑的。
前端开发的入门门槛其实非常低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是先快后慢。所以,对于从事IT工作的人来说,前端开发是个不错的切入点。也正因为如此,前端开发领域有很多自学成“才”的同行,但大多数人都停留在会用的阶段,因为后面的学习曲线越来越陡峭,每前进一步都很难。另一方面,正如前面所说,前端开发是个非常新的职业,对一些规范和最佳实践的研究都处于探索阶段。总有新的灵感和技术不时闪现出来,例如CSS sprite、悬浮定位、负边距布局、栅格布局等;各种JavaScript框架层出不穷,为整个前端开发领域注入了巨大的活力;浏览器大战也越来越白热化,跨浏览器兼容方案依然是五花八门。为了满足“高可维护性”的需要,需要更深入、更系统地去掌握前端知识,这样才可能创建一个好的前端架构,保证代码的质量。
10. 如何让后端开发高质完成前端的工作
这个问题其实是让前端开发工作如何做到边际成本递减,这里的成本是开发一个功能投入的前端工程师的专业性来衡量的,而不是获得用户的成本。所需前端工程师的专业性越低,后端工程师越有可能参与。
个人认为这是一个可行的目标,只不过阻力太大。下面结合自己在知乎短暂实验的经验(经验并非来自前端),大胆畅想一下。
1. 首先,要求流程上的每个环节对边际成本有清晰的认识,对达到边际成本递减的目标达成一致。任何一个流程不配合,其他流程降低成本的努力可能就付之东流。在实施上必须有管理层配合,能够立项效果最好;
2. 第二步,是统一交互模式。通常交互模式决定了前端的核心的框架,比如表单提交还是 AJAX, 页面局部刷新还是全局刷新,对话框采用 Apply 模式还是立即生效模式等等。你们的产品经理和交互设计师必须知道这些约定,并且保证在日后的迭代过程中保持一致,不能随意变化;
3. 第三步,设计封装性、复用性良好、松耦合的组件框架,并且建立一套全团队认可的组件库。要达到 PM、设计师、工程师都知道每一个新功能是否会在组件库里增加新组件,尤其是基本组件(指不能仅通过组合开发出来的组件),增加多少。组件的增加可以用来衡量你们开发的边际成本。同时,组件库要成为 PM 和设计师设计新功能的第一素材库;
4. 当一个新功能没有新增基本组件时,那么开发工作就变成了搭积木。后端工程师都是擅长多语言和重构的人,只要前面提到的组件框架设计水平有保证就行;
5. 让后端工程师能够独立组合出新组件,甚至能够开发出新的基本组件,就让其技能达到了发展和肯定。
其实可以看出来,后端参与前端开发并高质量的完成任务,对后端的要求并不高,对前端架构本身、项目管理、PM 和设计师的要求倒是蛮高的。