美文网首页
#DayOne前端每日读书

#DayOne前端每日读书

作者: Katherine的小世界 | 来源:发表于2017-10-18 18:15 被阅读0次

为了不忘初心,太多人和我说,原生js没有用,只要能够快速上手项目就可以了。而又有另外一个声音在告诉我,不知道原理基础,怎么去知道那些框架的真正目的和原理呢?对于一个学了大半年没有实习过没有大型项目经历的我来说,没有什么发言权,我还是坚持每天积累,看书,总有一天会有用的。

《高级程序设计》----24章节 最佳实践

image.png

一 可维护性

怎么说,代码最后如果越来越多,就是给大家看的代码的,所以一定要做好一些前期的规范工作,才能有利于后续的实践与操作。

那么就应该做一些代码的约定。
kimmy也经常说,在实际的项目中代码约定很重要。为了避免以后别人看不懂我的代码,现在还是要强制改好自己的习惯。

  • 可读性
    在一些必要的地方做好代码的注释,每一个函数和事件之前做好代码的解释,别人才会知道这个方法的用处。以及一些复杂的算法实现还有相应的hack解决手段,也应该有所注释。
  • 变量和函数命名
    其实,说真的,我有时候对于一些变量和函数的命名真的是惊慌失措,因为觉得没有名字了。函数的命名最好还是根据函数的目的来命名,要获取名字,就叫做getName()。对了,如果是有返回值的话,或者是测试布尔值,可以用isEnable()来命名,以is为开头。嗯,长度不是问题,而是应该合乎逻辑的名字。
  • 变量类型透明
    说到这个,我在定义类型的时候,经常是选择给空字符串。现在想想觉得不太好,应该最好是什么类型的数据先给一个类似的初始值。
var found = false
var count = 0
var name = ''

但是,这样别人也不能轻易知道是什么数据类型,所以我会选择这样的方式,就是结合上面的还有匈牙利标记法

var bfound = false
var icount = 0
var sname = ''
var Ocar = {}

当然,文中还提到一种注释法,但是注释法会影响多行注释,所以不建议。

二松散耦合

  • 解耦html/js
    尽量不要在js代码中创建html代码。
  • 解耦css/js
    这个其实有道理,就是你尽量不要在js内部去直接修改css样式,因为这样导致的后期调试问题是很难的。element.style.color = red;element.style.width = '10px' 这么做其实都没有必要,因为一旦页面需要调试的话,你要找到这个样式的设置是很难的。所以应该尽量不要在js中修改css.
    ???那,怎么做比较好呢
    相应的解决方案:修改元素的类,class
element.className = 'red'

这样就有一个好处了,一旦调试出问题,我们也可以直接通过类来找到。再者,如果后期这个样式要修改,我们也可以通过直接找到相应的类名,在类内部去修改。不至于再去js代码内部修改。

  • 解耦应用逻辑/事件处理程序
    这个我也很有感触啊。因为经常在一些需要处理应用逻辑和事件处理程序的代码中。怎么把两者分离也是很重要的。就像kimmy也经常有说,你事件的处理程序和你数据的请求也要分开来写。这样就简单明了。
    原来的代码
function handleKetPress(event){
  event = EventUtil.getevent(event)
  if (event.keyCode == 13) {
   var target = EventUtil.getTarget(event)
   var value = 5 * parseInt(target.value)
  if (value > 10) {
  document.getElementById('message').style.display = 'block'
 }
 }
 }

转换后的代码,将事件处理和逻辑应用分开处理。

function validatValue(value) {
var value = 5 * parseInt(tvalue)
if (value > 10) {
document.getElementById('message').style.display = 'block'
}
}


function handleKetPress(event){
  event = EventUtil.getevent(event)
  if (event.keyCode == 13) {
   var target = EventUtil.getTarget(event)
   validatValue(target.value)
}
}

三 编程实践

  • 避免全局量
  • 使用常量
    这个还挺有感悟的,有时候在写一些东西的时候,就是一些比较常用的常量,还是可以将其存放在一个常量里的
    我记得kimmy在那个换肤的那个应用的时候,就是定义了一些常量在一个文件里,需要使用的时候就直接应用了。当然,以后我们如果需要修改到这个常量,我们只要找到当初存放的文件夹,进行修改就可以了。
var constance = {
  url : /huhuhu.php/,
  msg: 'invalid Value'
}
  • 避免与null进行比较
    有时候在if语句内,经常要判断一些变量的属性,来进行下一步的操作。当然,变量最好就不要与Null进行比较。
    引用类型: 使用instanceof判断检查其构造函数
value instanceof Array   // 判断是不是数组

基本类型:使用typeof检查其类型

typeof value// 判断是什么类型的 string .Array .Object

如果是希望对象包含某个特定的方法。使用typeof操作确保制定名字的方法存在于对象上。

相关文章

  • #DayOne前端每日读书

    为了不忘初心,太多人和我说,原生js没有用,只要能够快速上手项目就可以了。而又有另外一个声音在告诉我,不知道原理基...

  • DayOne日记迁移/备份到Evernote

    DayOne日记迁移/备份到Evernote,DayOne2Evernote 准备 1.Mac,安装DayOne(...

  • dayone

    今天一如既往的和媳妇冷战,和岳父带着儿子去爸妈那边吃饭,饭后媳妇跑来闹着玩离婚,一番舌战未分输赢,带老小回自己家,...

  • DayOne

    今天,算是我正式开始准备比较系统的学习的步伐了。加油。 首先就是今天的一些学习总结了,今天学的主要是java的一些...

  • 仿IOS效果-带弹簧动画的ListView

    背景介绍 最近项目打算做一个界面,类似于dayone首页的界面效果,dayone 是一款付费应用,目前只有IOS端...

  • Object Oriented-dayone

    /////////////////////////2016-10-30//////////////////////...

  • 2019-05-04

    日行一善 每日读书 每日微笑 每日阅读 每日分享

  • 《高效能人士的七个习惯》每天用1%来进步,成为1%的人

    DAYone 2017/11/06 【自我介绍】 姓名:郑建杭 编号:44 城市:莆田/厦门 行业:制造业 电话/...

  • 使用Chrome写Dayone日记

    2020年3月更新: Chrome插件官方已经停止支持,更新了一种套路:依然使用平板来写日记。 注册一个新的微信号...

  • dayOne SpringBoot的起步练习

    1、新建一个SpringBoot的项目 这边的包名可根据自己修改第三步.png 依赖可选可不选,尽量后期自己加第四...

网友评论

      本文标题:#DayOne前端每日读书

      本文链接:https://www.haomeiwen.com/subject/ysseuxtx.html