编码规范
一、命名规范
- 采用该领域的术语,恰当使用公共缩写和习惯缩写等(遵循由其命名便可知道其意义的原则);
- 避免使用相似或者仅在大小写上有区别的名字;
- 包命名一律小写,eg:[基本包].[项目名].[模块名].[子模块名];
- 类或接口命名采用大小写混合方式,每个单词的首字母大写;
- 变量命名区分全局变量、导出变量、常量、局部变量,最好区分类型;
二、代码风格
- 干净整洁,提高代码的美观性与易读性;
- 注意缩进、对齐、间隔、换行等细节,合理运用空行;
- 不允许将多个短语句写于同一行;
- 一行的长度超过80个字符需换行;
三、注释使用
- 方法内部单行注释使用“//”,在被注释语句上方另起一行;
- 为不容易理解类变量注释;
- 注释代码段,注释逻辑选择,eg:有if else等逻辑选择的时候可以注释一些判断依据与结果;
- 完全模块化、结构化的程序许多地方注释可以精简;
四、控制语句
- 在if/else/while/for/do语句中使用大括号,避免采用单行的编码方式;
- 循环体中的语句要考虑性能;
- 减少在条件判断中执行其他复杂语句的情况;
- 表达异常的分支时,减少使用if-else语句;
- 使用局部变量采取就近原则,不允许定义一个局部变量,然后在很远的地方才使用的情况;
五、声明
- 方法声明,如果成员函数没有必要公有(public),就定义为保护(protect),没有必要保护(protected),就定义为私有(private);
- 声明顺序:构造方法、静态公共方法、静态私有方法、公共方法、友元方法、受保护法、私有方法、main方法;
- 变量声明,一行一个声明,在代码块的开始处声明变量,不要在首次使用到该变量才开始声明;
六、提醒
- 多读优秀的源代码,多实践,看别人的代码时要汲取优秀之处;
- 养成自己写的代码清晰有逻辑、整洁一致的习惯,在自己读懂的的同时让更多人能读懂;
《数学之美》感想体会——第7章 贾里尼克和现代语言处理
在阅读《数学之美》一书中,作者多次给我们提及到自然语言处理大师——贾里尼克,希望把一些成功将数学原理应用于自然语言统计领域的大师介绍给更多的信息领域研究的年轻人,本章则是从贾里尼克着笔介绍,当然让读者们读到的不止是这位大师的经历,更是每一件事背后体现的人物精神态度,也为我科普了一些自然语言处理的发展过程。
谈一些从这位大师身上触发的感想体会,作为自然处理领域的开创性人物,贾里尼克中学期间更多的时间是花在打工补贴家用而不是学习上,在看到他与作者吴军的对话中都认同学习的内容是可以弥补的,为何如此,其解释道在大学阶段人的理解力强许多,所以相对中学阶段可花更少时间读完一门课程,而成长确是不可弥补的,中小学生的社会经验、生活能力以及那时树立起的志向将帮助他们的一生。所以这儿讲到了一个对待教育的不同看法,或许那些一成不变学习,被称为死读书读死书的人,都不如从小树立志向付诸实践从生活中学习来得管用。坚定志向,治学严谨,言行一致,为人公正等许许多多闪光灯从这位大师身上体现出来,很多历史成就背后有着它必然的原因我看的确如此。
最后来谈一下从中了解到的些许自然语言处理发展,从吴军的总结经验中提到很有趣的一点,一种新的研究方法代替需要许多年时间,需要等原有的一批科学家退休,因为并不是所有人都乐意改变自己无论对错的观点,这也是挺新颖的方面看待问题,回顾自然语言处理发展进程,从NLP发源时代,到NLP规则时代,NLP统计时代,NLP深度时代,自然语言处理目的在于用计算机代替人工来处理大规模的自然语言信息,而NLP的最终目标是,让计算机能够确切理解人类的语言,并自然地与人进行交互。