墙上装饰相框:Web前端研发工程师编程能力飞升之路(4)

来源:百度文库 编辑:中财网 时间:2024/05/01 21:46:07

四.【入微】

最强解决方案。你能够走在需求的前面,将当前需求里有的、没有直接提出来的、现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案。以一招胜万招。

  1. var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0 
  2. // 我将这个字符串里所可能想到的各种情况都列举出来  
  3. var a = [  
  4.          "http://www.xxx.com/VMpn=?pn=0"// pn= 可能出现在 ? 前  
  5.         , "http://www.xxx.com/VMpn=?pn="// URL里允许pn 值为空  
  6.         , "http://www.xxx.com/VMpn=?pn=0&a=1"// URL 里可有多个字段  
  7.         , "http://www.xxx.com/VMpn=?a=1&pn=0"// 可能排在最后  
  8.         , "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1"// 可能有多个 pn 字段  
  9.         , "http://www.xxx.com/VMpn=?a=1&pn=0&b=2"// 可能在中间  
  10.         , "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1&b=1"  // 可能在中间成组  
  11.         , "http://www.xxx.com/VMpn=?a=1&pn=0&b=1&pn=1"  // 可能零星分布  
  12. ];  
  13. /* 需求的不言之秘:  
  14.  若出现在字符串最尾则要去之  
  15.  & 两个符号不可重叠  
  16. */  
  17. var reg = /((\?)(pn=[^&]*&)+(?!pn=))|(((\?|&)pn=[^&]*)+$)|(&pn=[^&]*)/g;  
  18.  
  19. for (var i = 0; i < a.length; i++) {  
  20.     alert(a[i] + "\n" + a[i].replace(reg, "$2"));  

这个阶段已经不再追求一招一式,对你来说不是使用什么创新绝招解决需求,而是给出成熟稳重的方案,从根上解决问题。针对某个当前需求你的代码可能不是最优,但是针对此类的需求你的代码却是最优秀的代码。

【进阶之路】

很多WEB前端研发工程师在做了3-4年之后就会进入一个瓶颈期:产品开发需求是小菜一碟,没有新鲜的可以挑战的东西;代码开发中的稀奇的解题方法都已经尝试过。没有了可挑战的难题,失去了探索的激情,也就没有了再上升的动力,好不容易走过“入室”级别的人又会有八九成止步于此。或转做技术领导人,或转到其它的领域,或换公司。

这些人的上升之路在哪里呢?

这个阶段单单依靠技巧和数量的累积已经没有什么效果了,突破之路在第5层《化蝶》里会详细说明,我建议你在这个阶段末尾着重关注编程理论:面向对象/过程、代码组织形式、编译、代码规范、其它的框架设计等等。

我建议这个级别的工程师做一做WebEditor控件,不要求完整功能,但是该控件里的模块划分、代码组织、编程思想做到位,给出一个系统的解决方案。