javascript 代码提示 dreamweaver_少编码多思考:代码越多 问题越多

摘要:本文作者Ed Finkler是一名PHP、Python、JavaScript程序员。有许多产品开发经验,例如Spaz,一个开源微博客户端桌面和WebOS。他在编码时总结了一些非常益用编码守则,分享给大家,希望对你有帮助。

大约一年前,我曾编写过一些PHP Web编程守则——MicroPHP Manifesto。但随着我熟悉各种各样不同的编程语言后,我发现各个语言之间都有一些共同的编程/编码规则。

下面是我总结出来的一些规则,并且在实际中应该牢记于心。

学习语言而不是框架

我喜欢PHP、Python和JavaScript,我喜欢用他们做些东西。但我不是Symfony、Django、jQuery开发人员。

我认为这有很大的区别。一个人很有可能成为一名jQuery程序员而非JavaScript,也有可能成为Django程序员而不是Python。在实际应用中,的确存在许多有价值且非常实用的工具和框架,但如果我仅知道如何使用一个框架,我想表达的观点是在工作上只使用合适的工具其实会给任务带来一些限制,以我的经验来看,一些复杂的全栈(full-stack)框架并不是非常合适的工具,尤其在灵活性和性能方面都不是太好。

集中精力学习一门语言会让程序员变的更好更加灵活。全栈式复杂框架可以帮助我着手快速的构建某个产品,但当我需要一个不属于框架范围内的解决方案时,它反而会变成一种伤害。我经常会采用“plug和pray”方法进行开发,当我发现某个库或插件可以满足需求时,我就会把它们应用到产品里。这样可能会使我的应用程序快速推出,但在以后的道路上会留下很多障碍。

此外,学习全栈框架会和学习新语言一样复杂。它们通常都会有复杂的体系结构和术语,并且有些部分并不适用于其他框架和工具上。我宁愿花时间学习更多关于语言本身的东西,并且把所学的技能应用到其他语言或者库上。

构建小模块

有些小型的单元代码是很好的,越小越容易理解。很难把它弄的很糟,所以限制编写冗长复杂的代码是非常重要的。

所以有目的的构建一些小模块——尽可能的接近需求目标。它们应该是独立的块,单纯地解决某方面问题,但是把它们结合起来时,就可以解决许多大型的、复杂的问题。

像这些简单的模块代码修复起bug来也会非常容易。因为这些单独的块通俗易懂,一看就会知道其用途。如果模块是自我包含的,那么测试起来会更加简单。

代码越少越好

套用Biggie Smalls的一句话:“代码越多,问题也就越多”。

谁都喜欢管理少的代码。估计大家都有过这样的体会,当审查一个功能模块的代码时,如果代码很多很乱,第一印象肯定不好,相反,如果该模块代码简洁明了,你会非常愉悦。更通俗点讲就是代码越多,管理起来也就越困难:搜索代码库的时间会变长、查看文件导航也需要较长的时间、跟踪执行也会变的困难等。

那些庞大的库和长代码似乎会溢出大脑缓冲区。当我在追踪一段较长的源码或执行跳跃好几个源文件的功能时,我会感到很苦恼。这就是为什么我会喜欢给语法进行着色的编辑器,并且保持一致的空格对我也非常有帮助。

除了喜欢管理较少的代码外,我还支持开发者们尽量简化代码。程序员要为应用程序所使用的代码,不仅仅是自己编写的部分负责——甚至是这些应用里的每行代码。这也就意味着要替这些应用里出现的bug或者安全漏洞负责。

28887181_1.jpg

你会在程序中使用自己不理解的代码吗?这并不表示我从不使用他人的代码——坦白说,世上有许多优秀的程序员,但是在应用他人代码的时候,你必须理解代码,因为应用程序里的每行代码都很重要。在编码时千万不要忘记思考,编写最少代码的背后应该是多思考,这样就不会给自己带来不必要的麻烦。

编写简单、有用可读的代码

编写容易理解的代码,少编码多思考,这样完成一个功能就会很快,生产力就会得到提高。

当然,我也希望代码是可验证的。并且我一直认为简单、模块化的代码是更容易被测试。

代码应具备的另一特征就是可读。代码应简洁明了,语义清楚。在编写代码时,我会思考其他程序员在第一眼看到它的时候会花多长时间来理解。或者一两个月后我自己能一目了然吗?正如大家熟知的那句编程谚语:任何一个傻瓜都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。当我试图发现它们工作原理的时间越少,做的事情就会越多。

但是很少有人能坚持这些规则,如果我说是,那么我肯定是在撒谎。有时候我也会很懒惰,甚至由于时间限制,我会编写一些复杂的、难以理解的代码或者使用没有审查的库来实现某个功能。想要在短期内编写简单、清晰的代码会很困难——它需要更多的纪律和不断的技术评估。特别是那种对时间敏感的项目,实行起来将会更难。

但是,当你花时间和精力去做的时候,你会发现功夫不负有心人——不仅仅对自己有帮助,还会给其他团队成员带来很多益处。

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值