文档章节

谈优雅的PHP代码Elegant Code

taxilmc
 taxilmc
发布于 2016/08/08 18:53
字数 797
阅读 56
收藏 0
点赞 0
评论 0

不知道什么时候开始,“优雅的代码”就经常出现在同学和同事的口中...

Exo me?啊哈程序猿什么时候变得如此文艺如此高品质?

(其实在我脑海中浮现的是拿着红酒杯,轻轻摇晃杯里的波尔多红酒,闻一闻来自遥远欧洲小镇的浓郁果香,抿一抿红酒,再缓缓地敲出心仪的代码...)←真·优雅程序猿。

 

嗯扯远了,带着满满的求知欲百度了 “优雅的代码”& ”elegant code”,选了几个比较有营养的网址贴出来吧:

http://www.zhihu.com/question/28492982

http://www.zhihu.com/question/24932326

http://www.docin.com/p-499721084.html

http://programmers.stackexchange.com/questions/97912/how-do-you-define-elegant-code

至于是谁创始了“优雅代码”这一说法的,反正我也查不出来额...而且明明就是说代码整洁啊,易读啊,可复用性强啊,说成优雅真是太矫情了吧,了吧,吧...

 

反正我的理解是酱的↓

首先是对于编程语言都通用的:

1.写注释

一般是每个函数、类的方法和成员要注释一下什么意思,如果有必要,一些复杂程序块也注释一下用法和意思。反正太少不好,太多也看晕人。

 

2.缩进和换行

其实我没有注意这点,因为我的IDE强大到可以自动缩进_(:з」∠)_,安利一下大家jetbrains公司的phpstorm,貌似jetbrains公司出来的IDE都很厉害,有webstorm(写HTML和JS)、pycharm(写python)。还是言归正传吧...好的代码结构从缩进和换行就看得出来。

 

3.命名方式统一且易懂

现在主流命名是,常量就用全大写(LIANGMINCONG),变量就驼峰命名法(也有人说是小驼峰命名法)(liangMinCong),或者是带下划线的(liang_min_cong),反正就是一个产品里面的命名方式要一致,命名最好就是变量or方法功能的英语,也能起到一定解释说明的作用。

 

4.代码分类型分块存放

没什么好说的诶。就好像JS的话click事件放一块,dbclick事件放一块,有逻辑可寻不用瞎找,PHP的话一般的类public方法写前面,因为要给别人看,private和protected方法移在后面。

 

接下来说一下个人的一些想法吧,当然也综合了网上各家之言:

1.PHP用单引号代替双引号要高效,因为双引号还要检查是不是有变量存在。

2.用类似C++/C原生的语法会更高效,因为貌似本来就先编译成C++/C。比如$i++;就比$i=$i+1快。

3.多用PHP内置函数,比自己写函数要高效。比如in_array比自己遍历数组来判断是否存在要快吧。

4.MYSQL查询时尽量不用*,用具体字段名代替。这个见仁见智吧,我认为字段名能更好理解程序代码。

5.MYSQL对于常查询的列,试着建立索引。

 

如有错误,恳请指点。_(:з」∠)_,谢谢观看。

 

参考网址:

http://blog.csdn.net/initphp/article/details/7684433

http://blog.csdn.net/initphp/article/details/7788003

© 著作权归作者所有

共有 人打赏支持
taxilmc
粉丝 2
博文 14
码字总数 10216
作品 0
韶关
程序员
OperaMasks UI 2.1 版本发布了

OperaMasks UI2.1版本发布了 OperaMasks-UI是基于jQuery并提供丰富组件的前端UI库,致力降低应用的前端开发成本。此版本新增了一套elegant(优雅)皮肤,该皮肤致力于提供一套浅色样式,容易嵌...

0day ⋅ 2013/02/13 ⋅ 11

2013年"其实你不用去远方--长沙十月好代码"活动

时间:2013年10月20日(星期日)下午13:30(13:00开始签到) 地点:湖南师范大学外国语学院515学术报告厅 收费:本次活动不收取任何费用。 报名:请点击 http://city.oschina.net/changsha/e...

王蓉 ⋅ 2013/10/09 ⋅ 20

JavaScript开发规范 0.01版

JavaScript开发规范v0.01 终极原则:简洁,明晰,优雅。 所谓简洁,可以只写一遍的代码,绝不写两遍; 所谓明晰,尽量只用人类能一眼看明白的写法。 所谓优雅,能让阅读代码的人感受到一种莫...

我擦_得弄个昵称 ⋅ 2014/08/11 ⋅ 0

当我们谈 XML 布局文件代码的优雅性

当我们谈 XML 布局文件代码的优雅性 Drakeet的个人博客2016-04-24109 阅读 AndroidLayout技术Idea 当我们谈代码的优雅性,是不可以忽略经常在打交道的 Android XML 布局文件的书写。有人会问...

Drakeet的个人博客 ⋅ 2016/04/24 ⋅ 0

12款非常精致的免费 HTML5 & CSS3 网站模板

01. Joefrey Mahusay 很炫的单页网站模板,基于 HTML5 & CSS3 制作,适合用于设计师个人简历、摄影师和平面设计师的个人作品展示。 演示 下载 02. Folder Folder是一款响应式 HTML5 网站模板...

未来十年 ⋅ 2013/08/12 ⋅ 0

你的代码可以是优雅的,但是还有更重要的

在开发过程中,我的口头禅是: Your code may be elegant, by mine works。我为此而常常受到质疑,也有人反驳我“你不会使用最优方法!”“你在逃避测试!” 为了避免一次又一次地重复解释,...

墙头草 ⋅ 2012/03/19 ⋅ 34

Laravel 5.4.28 发布,PHP 开发框架

Laravel 5.4.28 已发布,Laravel 是一套简洁、优雅的 PHP Web 开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络 APP ,而且每行代码都可以简洁、富于表达...

王练 ⋅ 2017/07/02 ⋅ 29

Laravel v5.5.22 发布,PHP 开发框架

Laravel 5.5.22 已发布,Laravel 是一套简洁、优雅的 PHP Web 开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络 APP ,而且每行代码都可以简洁、富于表达...

michealz ⋅ 2017/11/28 ⋅ 2

Agera Event Bus

Agera Event Bus Drakeet的个人博客2016-06-1657 阅读 event https://github.com/drakeet/agera-event-bus Sample -> (static) -> (Inhibitor) –> (post an event) -> Activity . Usage To ......

Drakeet的个人博客 ⋅ 2016/06/16 ⋅ 0

一款综合(QQ 音乐、微信、美团、优酷、虎牙直播等多款 app)风格的搜索控制器

PYSearch GitHub地址:https://github.com/iphone5solo/PYSearch 项目作者:CoderKo1o 🔍 An elegant search controller for iOS. 🔍 iOS 中一款优雅的搜索控制器。 Features 支持多种热......

iphone5solo ⋅ 2016/11/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 47分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部