四.【入微】
最强解决方案。你能够走在需求的前面,将当前需求里有的、没有直接提出来的、现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案。以一招胜万招。
- var str = "http://www.xxx.com/?pn=0"; // 删除指定字符 pn=0
- // 我将这个字符串里所可能想到的各种情况都列举出来
- var a = [
- "http://www.xxx.com/VMpn=?pn=0"// pn= 可能出现在 ? 前
- , "http://www.xxx.com/VMpn=?pn="// URL里允许pn 值为空
- , "http://www.xxx.com/VMpn=?pn=0&a=1"// URL 里可有多个字段
- , "http://www.xxx.com/VMpn=?a=1&pn=0"// 可能排在最后
- , "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1"// 可能有多个 pn 字段
- , "http://www.xxx.com/VMpn=?a=1&pn=0&b=2"// 可能在中间
- , "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1&b=1" // 可能在中间成组
- , "http://www.xxx.com/VMpn=?a=1&pn=0&b=1&pn=1" // 可能零星分布
- ];
- /* 需求的不言之秘:
- ? 若出现在字符串最尾则要去之
- ? & 两个符号不可重叠
- */
- var reg = /((\?)(pn=[^&]*&)+(?!pn=))|(((\?|&)pn=[^&]*)+$)|(&pn=[^&]*)/g;
- for (var i = 0; i < a.length; i++) {
- alert(a[i] + "\n" + a[i].replace(reg, "$2"));
- }
这个阶段已经不再追求一招一式,对你来说不是使用什么创新绝招解决需求,而是给出成熟稳重的方案,从根上解决问题。针对某个当前需求你的代码可能不是最优,但是针对此类的需求你的代码却是最优秀的代码。
【进阶之路】
很多WEB前端研发工程师在做了3-4年之后就会进入一个瓶颈期:产品开发需求是小菜一碟,没有新鲜的可以挑战的东西;代码开发中的稀奇的解题方法都已经尝试过。没有了可挑战的难题,失去了探索的激情,也就没有了再上升的动力,好不容易走过“入室”级别的人又会有八九成止步于此。或转做技术领导人,或转到其它的领域,或换公司。
这些人的上升之路在哪里呢?
这个阶段单单依靠技巧和数量的累积已经没有什么效果了,突破之路在第5层《化蝶》里会详细说明,我建议你在这个阶段末尾着重关注编程理论:面向对象/过程、代码组织形式、编译、代码规范、其它的框架设计等等。
我建议这个级别的工程师做一做WebEditor控件,不要求完整功能,但是该控件里的模块划分、代码组织、编程思想做到位,给出一个系统的解决方案。
广州网站建设,网站建设,广州网页设计,广州网站设计



