31
回答
高手问答第 193 期 —— 进阶的前端:Web 高效编程与优化实践
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   
OSCHINA 本期高手问答(4 月 11 日 - 4 月 17 日)我们请来了李银城老师@李银城 来和大家一起探讨关于 Web 前端高效开发的问题。 李银城(网名:会编程的银猪),资深前端工程师,现就职于人人网。知乎著名的专栏作者,前端类话题知名答主,在知乎前端圈有一定的影响力。乐于分享。喜欢写博客,文章曾被大量转发和转载。 关于前端开发主题的高手问答,我们举办了不少,不过主要都是针对某一框架的,像 React、Vue.js、React Native 等等。所以本期我们决定举办一次关于前端开发“内功”方面的讨论,真正深入到前端开发的“内核”,从“内功”说起。 本期高手问答十分有幸邀请到了资深前端工程师@李银城 老师,围绕着“高效编程”和“应用优化”这两个主题,和大家一起探讨关于高效 Web 前端开发的问题。 本期高手问答主题:
  • 前端工程师应该掌握的“基本内功”
  • 前端开发思想提升
  • 高效开发实践
  • 前端技能修炼
为了鼓励踊跃提问,@华章 会在问答结束后从提问者中抽取 5 名幸运会员赠予《高效前端:Web高效编程与优化实践》一书。 购买链接:京东 OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。 下面欢迎大家就 Web 前端高效开发实践方面的问题向@李银城 提问,请直接回帖提问。
举报
局长
发帖于2周前 31回/3K+阅
共有31个答案 最后回答: 6天前
@李银城  1. Web 高效编程与优化实践从哪些方面入手? 2. Web 高效编程与优化实践需要学习哪些内容? 3. 关于web开发对于新手有什么建议和意见?
--- 共有 2 条评论 ---
李银城所以我强调的高效编程是注重编程功底和素质的,而不是通过借助外部的工具(当然恰当地使用是有好处的)。这种书介绍了很多前端开发需要的基础和编程实践,一个好的前端应该先是一个好的程序员。新手除了学习书或者看博客之外,更重要的还是要多动手练习,只要自己思考过了,才能转化为自己的知识,可以根据这本书的例子动手去练习 2周前 回复
李银城这本书叫高效编程,其实是参考了《Effecitve C++》等系列的书,因为还没有人出一本Effective前端,所以才有了高效前端这一说法。书里面也提到了,通过提升编程功底以达到高效编程的目的。有些人觉得高效编程就是要多使用一些工具提高开发效率,但是你看Effetive的书,Effective Java/Javascript,他们都没有跟你介绍类似于IDE和插件,而是更加注重语言本身的一些东西 2周前 回复
@李银城 前端框架这么多,需要怎么学习? 高效编程需要怎么一个学习路线?
--- 共有 3 条评论 ---
李银城关于学习路线,主要是要通过做项目锻炼自己,纯粹的学习没有动手练习是不行的。有一点我比较强调的是,当你在写代码的时候遇到问题要深跟到底,不能总是换另一外种偷懒的方式解决问题,或者是解决了但是不知道为什么好了。当你为了解决一个问题,你就得查很多东西或者做很多的调试,在这个过程里面,你会发现你的知识盲点,同时锻炼了自己解决问题的能力 2周前 回复
ff100谢谢老师,知道方向了。 2周前 回复
李银城有些人觉得通过使用框架来展现自己的价值,然后在简历上列了很多框架名称、MV*模式、SSR等,显得自己好像什么高大上的技术都搞过。虽然你会用框架是你的能力的体现,但是你只是使用,并不是开发。如果你把学习的精力放在怎么使用各种各样的框架上面,那可能方向错了。你只要学习项目里面使用的框架然后去看它的源码,应该就够了。你应该要更加关注一些更加通用的技术,例如布局、跨域、TCP/HTTP,数据结构算法等等 2周前 回复
前端需要怎样证明自己的价值。 在一个公司,随着业务的成熟,前端逐渐边缘化,这时候,怎样才能证明前端存在的价值?发明高框架?优化业务(其实业务流程都跟你没有太大关系)?还是往后端走?还是用更复杂的技术来证明存在的必要性? @李银城
--- 共有 1 条评论 ---
李银城如果前端不是核心业务的话,确实会被边缘化。有段时间我也是各种干,哪里缺人就去哪里顶。但是我并不归抱怨说做得东西比较杂,相反静下心来把每一件小事都做好了,得到了大家的认可。我觉得一个了不起的人不一定得去幵发一个了不起的框架,当你把每件小事都做到极致,你就是一个了不起的人,同时在这些小事里面也是可以学到很多东西的 2周前 回复
@李银城 我现在看web前端的招聘需求(小城市),很多还是以前“页面仔”的工作,甚至连前后端分离都不知道。请问我该如何安利现代前端思想?或者换个说法,怎么证明现代前端的价值?
--- 共有 2 条评论 ---
李银城你要自己用过,结合当前的需求场景,确实觉得好了再给他们推广,不能只是从觉得大家都说好,所以这个东西肯定好的角度。因为别人好的东西不一定适合你们公司的业务,实践出真知,这个东西确实能够解决实际问题才去引入,不能仅仅只是为了追赶潮流 1周前 回复
李银城新的理念新的技术确实可以尝试推广,但是有些人容易跑偏。以前有个人张嘴闭嘴就是各种高大上的技术名词,说服我们去使用这些新的东西。他说得什么都懂的样子,但是实际上这些东西他自己也没有实践过,但停留在了解和觉得好的层面。我觉得如果只是这样是很难说明别人的,因为我随便抛一个稍细节的问题就把他问倒了。 1周前 回复
@李银城 你觉得前端编程中最困难的部分在哪里?
--- 共有 1 条评论 ---
李银城我觉得如果提问这个问题,说明对前端的热情可能没有像我这么浓烈,有些人觉得CSS切图调样式很繁琐,但是在我看来CSS还是挺好玩的,能切出一个很好看的页面还是挺有成就感的,还有JS代码设计比较合理,或者想到一个比较好的实现,也是很开心。如果真要说一个困难的地方,那就是兼容IE系列的过时浏览器,不能使用新的技术 2周前 回复
@李银城  不好意思,差点看成万人崇拜的 李银河 老师 ~v~. 我的问题:如果你是面试官,对于前端你会关注哪些方面的问题? 
--- 共有 1 条评论 ---
李银城我会比较关心基础技术和新技术,基础技术如CSS布局、HTTPS、SQL等,新技术如WebRTC、WASM、PWA等,不太关心第三方的扩展应用如小程序、快应用等 2周前 回复
@李银城 您好,问题请教。 我是一个后端开发,但对前端技术很感兴趣。目前的三大spa也都用过~ 那么如何评价一个前端开发工程师? 以及除了spa相关框架/mvvm模式 这些之外,是否还有更深层次进阶的内容可以学习?
--- 共有 5 条评论 ---
雪舞潇湘 回复 @亚虎娱乐官方app中国首席技术专家 : 单页Web应用(single page web application,SPA)。目前流行的技术实现是React/Vue/Angular~ 4天前 回复
亚虎娱乐官方app中国首席技术专家请问spa是什么? 1周前 回复
雪舞潇湘 回复 @李银城 : 受教了,目前确实停留在会用的阶段。也确实用的技术多而且杂,但基础方面缺失比较缺失。很多时候都是因需而学。应该是我后面要努力的一些方向。导致的原因应该是我喜欢技术框架和架构应用,而不是太喜欢底层基础积累。 2周前 回复
李银城有些人喜欢在简历上堆框架之类的技术术语,但实际上这样做并不会给简历增添太多光彩,相反,如果你说我有一个博客,上面有几篇分析得很透彻的文章,我对float/flex布局有很深的理解,我还会适配兼容IOS/安卓、没事的时候写了几个webpack/babel的插件,在stackoverflow社区有很高的影响力,等等,这种给人感觉你确实是真材实料的 2周前 回复
李银城做为一个后端,学习前端的东西我觉得是很好的,做为一个前端也需要有一些后端的思维,而你已经在玩框架了,已经强过很多人了。不过如果你觉得前端就是玩框架,那可能不太对。如果你要进阶的话,应该要多学习前端的一些基础技术,例如我随便抛几个问题:什么是BFC/margin合并以及如何清除、setTimout 100和setInterval 100有什么区别、DOM是怎么组织以及怎么查DOM 2周前 回复
@李银城 一直从事后台开发工作,也想学习一些前端开发,个人对于js来说并不是特别掌握,对于js方面的学习有什么难度吗,应该掌握什么样的基础能够快速掌握。前端应该有什么样的思想,如何扎实掌握前端方面的技术。
--- 共有 1 条评论 ---
李银城对于很多后端来说,学可能更大的目的可能是为能够快速地搭建一个后台管理系统,这样就不用找专门的前端来做了,我建议你可以学习vue/jquery,样式用boostrap。如果想更加深入地学习前端,那么应该需要系统地学习CSS/HTML/JS,CSS可以看精通CSS那本书,JS可以看《JS精粹》这本书,我的这本《高效前端》综合性比较强,也是可以学习 2周前 回复
顶部