0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从编写代码习惯谈工程师风格

工程师人生 来源:博客园 作者:等你归去来 2021-01-15 10:11 次阅读

引语:代码风格,是一个工程师长期以来养成的一些编写代码的习惯,其实并无绝对的好坏之分!但是,基本上可以这么说,一个有很好的代码风格的人,技术水平绝不会太低;反之,一个没有好的代码风格的人,技术水平也不会高到哪里去,即使是他已经有很多年的编程经验!因为,在业界有一个不成文的现象,那就是每个工程师都有一个追求技术提升,追求完美的梦!结果就是,随着个人技术水平的提高,风格也越来越成熟,而这个风格就体现着其个人水平!

本文以PHP语言的某微视角,说几个代码风格上的事,同理可推至其他语言,其他技术,甚至其他通用道理!

本文将以从面到线再到点的过程,讲述一些个人心得。仅供大家娱乐参考,如有不对,请多多指教。如有雷同,不胜荣幸!

本文就以一个虚拟项目作为线索吧!

1、面:所谓面,就是面对一个项目摆在眼前,怎样去部署大方向的问题的思路!准确的说,这里并不是真正地体现一个代码风格,而是一个做事风格!

风格1:1. 我需要需求书,书上怎么写,我就怎么做;2. 如果有一些未知的技术,尽量让需求上做一些让步,以减少开发难度;3. 找个牛逼的人,带着自己或其他人一起做;4. 时间是多久?

风格2:1. 我需要需求书,书上写的东西,清楚吗?有什么可要可不要的东西,有副作用吗?2. 大概需要什么样的辅助工具,在哪里可能会得到这些东西?3. 我怎样组建自己的技术团队?4. 时间是多久?5. 后期可能会有什么样的扩展?

2、线:所谓线,可以理解为流水线吧。就是怎样去完成这么一个计划,怎样调动生产?

风格1:1. 设计数据库; 2. 选择代码框架;3. 编码;

风格2:1. 设计服务架构;2. 模块细化;3. 设计数据库; 4. 选择代码框架;5. 编码;

3、 点:所谓点,其实才这里说的真正的代码风格,将着重说明一些。

风格1:任性,随意而为,没有规则!

风格2:着重讲解!

3.1. 不一定非要使用现有成熟框架,但是一定要有MVC的概念,基本要抛弃面向过程编程方式,采用面向对象,不任性;

3.2. 结合多种设计模式进行开发,如单例模式、工厂模式、抽象模式、观察者模式等等,这些都是成熟的概念,都要尽量多用!优雅,大气,效率,易读;

3.3. 类内部变量定义以权限放第一位,变量修饰符放第二位,以重要程度分先后,如 public static function fun1(){} ;类名与文件名有某种特定程度的相同,方便查看;类名统一首字母大写;私有变量或方法使用下划线开头以区分,如 private function _doCut($data);文件以最能体现其功能的单词命名,区分类型,如 IndexController.class.php, function.inc.php;

3.4. 文件内部使用统一命名方式,要么使用下划线方式命名,如 $get_child,$bind_value,要么使用驼峰式命名,如 $getChild,$bindValue;变量名尽量使用全名不要使用简写,如 getCategory不要简写成getCat;

3.5. 多个参数之间有逗号分隔时,逗号后要留一个空格如 fun($param1, $param2);运算符两边均有一个空格(数组对齐除外),如 $click = 123;

3.6. 避免使用global变量,尤其是有些不是公共初始化时产生的变量;

3.7. 杜绝函数内部include方法文件,因为这样很难找到真正起作用的方法,或者说方法混乱;

3.8. 使用自动加载方式,而非include方式;

3.9. 如果一定要包含文件,尽量使用include_once,require_once 避免一个文件被引入多次从而报错情况;

3.10. 对可能多次引用的全局变量,使用某类的静态方法进行获取,如 ConfigClass::get(‘main’, ‘field’); 对于数据库一类连接,使用静态变量,保存首次连接时打开的连接,从而多处使用DB实例时,仍然不会重复实例化,如 $db = ConfigClass::getDbInstance();

3.11. 多使用isset(), empty()等系统函数进行判断空操作而非 !$var, $var == null;

3.12. 对于使用两次以上方法,就应该去考虑提出到公用地方或者类中;

3.13. 数据查询先确认当前索引,配合写SQL,特别地方,一定加上注释;

3.14. 会使用文件锁,数据库锁,会使用缓存如 memcache, redis, mongodb等;

3.15. 会适当使用事务;

其实,好与不好,大家已早有定论,只是作个参考,罢了!

习惯,就好!

不要害怕今日的苦,你要相信明天,更苦!
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67483
  • PHP
    PHP
    +关注

    关注

    0

    文章

    451

    浏览量

    26445
收藏 人收藏

    评论

    相关推荐

    为何国外工程师偏爱使用for(;;)来实现MCU死循环?

    一位工程师发现,国外工程师在给demo在做死循环时用的是for(;;),而不是常用的while(1)。这仅仅是个人习惯的问题,还是有更深层次的含义?
    发表于 04-01 11:26 124次阅读
    为何国外<b class='flag-5'>工程师</b>偏爱使用for(;;)来实现MCU死循环?

    单片机如何通过代码控制硬件:一名工程师的分享

    今天跟大家聊聊单片机是怎样通过代码来操控硬件的。作为一名单片机工程师,我们平时的工作就像是给单片机编写“指令集”,让它按照我们的意图去驱动各种硬件设备。
    的头像 发表于 03-06 14:46 463次阅读
    单片机如何通过<b class='flag-5'>代码</b>控制硬件:一名<b class='flag-5'>工程师</b>的分享

    中高级【嵌入式驱动工程师】年薪50w内可

    中高级【嵌入式驱动工程师】 年薪50w以内可 工作​地点:北京市 了解更多 ‼5年以上内核驱动开发经验 ‼​需要有国产化操作系统/芯片平台的驱动开发经验(必须) 交换机/交换芯片驱动开发经验
    发表于 11-23 13:35

    浅谈Verilog HDL代码编写风格

    习惯摸索,最终算是总结出了一套自己的代码书写风格,当然我的代码风格还是一直在进化中。现在将自己的一些经验总结出来,希望对刚开始学习FPGA
    的头像 发表于 11-20 10:04 303次阅读
    浅谈Verilog HDL<b class='flag-5'>代码</b><b class='flag-5'>编写</b><b class='flag-5'>风格</b>

    如何编写高性能的Rust代码

    为了最大限度地提高Rust应用程序的性能,你需要了解支持代码的底层硬件架构,如何优化算法和数据结构,以及如何对代码进行配置和基准测试。在本文中,我们将简要介绍这些主题,希望能更好地理解如何编写高性能的Rust
    的头像 发表于 11-03 14:28 470次阅读
    如何<b class='flag-5'>编写</b>高性能的Rust<b class='flag-5'>代码</b>

    工程师分享的7个编程习惯

    一些类型的测试包括: 单个组件和独立功能的单元测试。 用于多个组件之间交互的集成测试。
    的头像 发表于 10-16 11:44 208次阅读
    <b class='flag-5'>工程师</b>分享的7个编程<b class='flag-5'>习惯</b>

    单片机程序设计编程规范分享

    本规范适用于松翰科技 8-bit MCU 部门汇编程序编写准则,同样适用于代理商及重要客户工程师编程规范参考。本规范的目的为统一编程风格,保证程序编写质量,提高程序的可移植性和维护性。
    发表于 09-25 08:06

    FPGA的Verilog代码编写规范

      注:以R起头的是对编写Verilog代码的IP设计者所做的强制性规定,以G起头的条款是建议采用的规范。每个设计者遵守本规范可锻炼命名规范性。
    的头像 发表于 08-15 16:23 1198次阅读

    如何编写Arm汇编代码

    大多数开发人员使用高级语言(如C和C++)编写大部分代码。然后将此高级源代码编译为在目标设备上运行的机器代码。 然而,有时编写低级汇编
    发表于 08-02 13:01

    在MicroROS开发板上编写HelloWord代码

    你好,我是爱吃鱼香ROS的小鱼。这一节我们正式在MicroROS开发板上编写代码,输出HelloWorld到电脑上。在正式开始编写代码前,我们先了解下开发流程。
    的头像 发表于 07-02 15:38 641次阅读
    在MicroROS开发板上<b class='flag-5'>编写</b>HelloWord<b class='flag-5'>代码</b>

    招labview工程师 (广州)

    招labview工程师1-2名,工作地点:广州天河 负责仪器设备系统软件开发工作; 协助公司已有产品软件的维护及改进; 协助模块功能调试及系统搭建; 熟悉工业常用接口RS232、USB、GPIB、TCP/IP等 薪资情况,待遇可。QQ:3549663089有意者请联系本
    发表于 06-08 18:48

    什么是良好的Verilog代码风格

    推荐的代码风格。3、代码风格1、规则总览在设计这个模块的时候,我主要遵从了以下几条规则:Verilog2001标准的端口定义DUMMY模块逻辑型信号用参数赋值内嵌断言memory sh
    发表于 06-02 14:48

    Verilog编码风格的建议

    良好的编码风格,有助于代码的阅读、调试和修改。虽然 Verilog 代码可以在保证语法正确的前提下任意编写,但是潦草的编码风格往往是一锤子买
    的头像 发表于 06-01 16:27 483次阅读
    Verilog编码<b class='flag-5'>风格</b>的建议

    手把手教你MATLAB,Sumlink代码生成。无感FOC算法零到生成代码的过程。附上MATLAB代码生成仿真模型。

    华夏电子工作室:2023年6月8日下午3点(15:00)电机控制MATLAB代码生成系列课程直播第一季。邀请各位工程师准时来直播间讨论和观看。届时代码全开源。 下面我们来说一下FOC简单框架: 该
    发表于 05-28 12:33

    如何使用参数化编写可重用的verilog代码

    我们将介绍如何使用verilog参数和generate语句来编写可重用的verilog 代码。 与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。这使我们能够减少未来项目的开发时间
    的头像 发表于 05-11 15:59 696次阅读