良好的代码程式设计习惯

写代码的流程是,分析需求 -> 确定需要实现的功能 -> 确定数据结构 -> 代码实现

一个软件的应用的组成,可分为:代码,代码文件,目录

代码,分别是:变量,条件语句,循环,逻辑。

代码文件,是根据具体情境,及相关的任务逻辑,还有一些优秀代码组织规则,还有某些结构组织方式。从而组织成为一个个代码文件。

目录,目的出现是为了更好的将文件进行归类管理。


代码实现,就涉及到程式设计。

代码实现,需要注意哪些代码习惯?

开发,一定要意识到,写代码不是第一步要做的事。写代码不是第一步,写代码不是第一步。

写代码前面的第一步,是梳理逻辑。我们要实现一个功能,究竟会有哪些逻辑。

当你意识到逻辑时,这就已经开始了『代码程式设计』。

逻辑,也是有区分的,并不是单一的。

逻辑,它是有分公共的。

公共的逻辑

例如:

1、单入口的架构中,安全工作是放在前面,作为公共的逻辑来处理。

2、用户的登录、退出、注销,这是涉及到用户系统的功能模块部分,需共同用到的。这也可作为公共逻辑。

以上这两点,只是具体业务中的公共逻辑。

公共逻辑,进行细化,可以有架构代码执行的公共逻辑。以 PHP MVC 框架为案例,Laravel 框架中的模板调用,就是架构中的代码执行公共逻辑。

说了那么,一大堆逻辑,为了就是说明程序设计中,逻辑是非常的重要。

写代码之前,一定要思考,再动手。


代码实现过程,注意事项:

1、写注释

当然好的代码是不需要注释。

为什么好的代码需要注释? 因为好的代码通常的通俗易懂的,所以根本就不需要注释。

但是,要想到达不需要注释的代码,这很难。主要的一点就是,每个人的背景知识都是不一样的。开发团队成员,都是背景各异,写注释就是一个非常好的代码习惯。

注释要写好,要怎么写呢?

好注释的标准,简单明了、易懂

以一个封装函数为例

(1) 说明代码的具体作用

(2) 使用的参数说明,包括参数的格式

(3) 返回值说明

/*===============================================
    Function: _check_timeout
    Purpose: checks whether timeout has occurred
    Input:   $fp  file pointer
==============================================*/
    function _check_timeout($fp)
    {
        if ($this->read_timeout > 0) {
            $fp_status = socket_get_status($fp);
            if ($fp_status["timed_out"]) {
                $this->timed_out = true;
                return true;
            }
        }
        return false;
    }

2、变量名称

变量,以存储的数据分类,可以分为:简单数据格式,如:字符串、数字;复杂数据格式,如:对象、数组;特殊数据类型,如:资源

变量名,一定要使用表达数据意思的名称,如:存放人名的变量,使用变量名为 $name;存放年龄的,使用 $age 等。

变量名一定要遵守原则:表达数据意思的名词。可能每个人的词汇积累不一样,所以最好平常多积累。

使用通俗易懂的名词,就以权限作为案例,表达权限意思的单词就有 authority, privilege, permission,power。你就可以选择一个通常的,如:authority,priviliege

要表达复合的名词,如:子菜单,可以使用 submenu。

建议了解常用英语词汇前缀、后缀,附上一篇别人的总结:https://www.douban.com/note/311886019/


3、条件判断

使用尽量少的 if...else 语句

如何减少使用 if...else 等条件判断呢?

第一:清晰的逻辑,可以减少不必要的条件判断逻辑;

第二:使用三元运算符 ? :;

第三:使用 PHP 内置函数 isset(), is_string, is_bool();

第四:注意不要使用嵌套条件判断;

第五:可以通过前置设置,减少 else 判断分支;

第六:继续补充完善


4、循环语句

循环语句,针对的就是重复性任务、大数据集合。

循环使用注意要点:

(1)一定要少嵌套,一定要控制不能超过 3 层。

(2)可以串行的循环嵌套,就不要嵌套循环。

(3)循环选取符合条件的数据后,可以使用 break, continue 跳出,就是用。

(4) 把循环需要用到的条件,都在循环语句前先做。

如: $length = count($data) 代替 for($i = 0; $i < count($data); $i++) { ....}

(5)清楚理解 for, while, do-while, foreach 异同。

(6)可以使用 PHP 内置函数解决的循环问题,就是要用内置函数,如:array_map() 等。


5、代码排版

处理同一逻辑过程的代码,聚合在一块。不是说所有的变量声明,都是非要放置在开头的!!!


6、函数封装

凡是出现两次以上的代码处理逻辑,都可以封装函数。

函数封装原则:

(1)函数名称

(2)参数,默认值参数,放在必需参数后面

(3)函数代码不要超过 30 行,以尽量少的行数为原则

(4)函数的返回出口,一定要少,最好做到只有一个 return


7、代码文件

代码文件,遵循相同的归类一起原则。


8、软件开发范式与代码设计模式

选择合适的范式,预估应用的发展,为后面的迭代升级,提供充分的拓展空间。

设计模式

为了降低耦合度,提高可维护性,可阅读性,降低 debug 的难度,减少复合 bug 出现,这是必须的。

良好的程式设计习惯有哪些?欢迎你的补充!

toronto-1400x400.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,591评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,417评论 25 707
  • 2016年,加油几个小时就过去了,很快,不管你愿不愿意。 这一年里,我的工作得以顺利交接,平安退休,这让我精...
    我是骆驼草阅读 323评论 1 2
  • 这个世界总是一路走,我们一路变。生活变得浑浊,灵魂变得暗淡。曾经不甘平庸的少年,一次次的在本子上写下‘我本非凡’的...
    冬瓜的巴拉巴拉阅读 148评论 0 0
  • 在我的心中 乡愁是冬日的麦田 是夏天的叫蝉 在我的心中 乡愁是清脆的乡音 是美丽的童年 在我的心中 乡愁是一线牵的...
    晓的云儿阅读 247评论 0 1