前言:之所以想写这篇文章,是因为看了一些工作好几年的程序员写的代码让人很有点抓狂——难以阅读、无法扩展、容错太差。。。但他们却极力去追求框架、架构、模式等看起来很高大上的东西,我就在想,这样合适么?诚然,这些前人总结的经验是需要去学习和探索,但是,如果基本功没有打牢,把太多的重心放在这些略微有高度的事情上,是否有点舍本逐末??想想,我们程序员的价值在哪里?我们本质上就是要去开发功能、实现需求、满足业务,而达成这一切的基础就是我们写的每一行代码,所以,一个优秀的程序员,一定会有过硬的写代码的水平,这是一个优秀的程序员的基本素养。

为了提升自己的这一素养,我也在这里给自己一个总结——如何优雅的管理以及书写好javascript代码。

正文从这里开始:

一、清晰的目录结构——可以帮你精准的找到你要找的文件。

目录结构的复杂度应该根据项目的规模大小来确定,如果从整个公司的层面来划分,一个公司可能有好几个部门,不同部门又有好几个不同的项目,这样可以以部门为单位作为顶级目录,然后下面再细分主干、分支,客户端、服务端,然后下面又分pc、H5、app等,进而划分不同项目,然后项目里面才是对应的具体的源代码了,这时候可能要分打包文件、源代码文件、日志文件,源代码里面要分静态资源、视图、路由、库、模块等,静态资源又分js、图片、样式等,可能每个公司的情况不一样,但是这些划分都是要考虑的,并没有最完美的划分,适合自己团队的就是最好的,总之目的是要清晰划分文件类型,一目了然,达到不需要引导就可以很快速掌握整个站点的目录结构,从而找到目标文件。(想强调一点是,目录不要分的太多和太深,如果一个文件夹下面有10个子文件,那就要想想分类是不是太细了,这样有助于找到需要的文件么?)

二、见名知义的命名

不管是文件夹、文件,还是文件里面的函数,适当的命名总能为我们减少很多困惑。文件夹是什么类型的分类划分,就应该冠之以约定俗成的名字,比如,视图就叫views,路由就是routes等。文件名以及其他命名都一样,都有一定的规则,文件名可以就用名词,用英文或者拼音均可,看情况,变量名或者函数名可以用动宾结构,比如searchContactList之类的。每个团队应该有约定的命名规则和方式。

三、源代码(以JavaScript为例)

1、模块化

使用require.js或者sea.js模块化工具,用define将代码封装。

2、函数式编程

将各功能封装成函数,并且要将函数分类,暴露出入口。

3、不要写重复的代码,注意封装

4、留白

适当加空格和换行

5、能不循环就不要循环,能不在循环里面做的事情不要在循环里面做。(看到一个工作五年的同事在for循环里面定义了一串绑定事件,我就泪奔了)

6、心里时刻想着优雅!优雅!优雅!所有,不要写一坨人类看不懂的逻辑,三目运算嵌套不要写太深好不好,最后会把自己搞晕乎的。

7、可读性、拆分,减少嵌套

8、逻辑清晰、易读

9、严格模式

10、适当的注释

11、容错!!!(空格、0、undefined)

12、性能(是否应该过多在意)

如何优雅的管理以及书写好代码相关推荐

  1. 使用Spring特性优雅书写业务代码

    作者:阿里巴巴淘系技术 链接:https://www.zhihu.com/question/60761181/answer/1737592739 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...

  2. python代码书写_如何优雅的书写Python代码, python使用小技巧

    博客链接 文章目录 Python使用技巧 变量命名技巧 用有意义易读的命名 同类型使用相同词汇 可搜索的名字 自我描述的变量 不要取隐晦的名字 精简不重复 默认参数代替运算和条件 实用小窍门 变量值交 ...

  3. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

  4. css 样式三元运算_20条书写CSS代码的建议

    在这篇文章中,我想跟你分享 20 条由 CSS 社区推荐的约定和最佳实践.有些建议可能比较适合新手,而有些则更高级一些,但我希望每个人都可以在本篇文章中收获自己不知道的知识.01.谨慎使用外边距属性与 ...

  5. 在Asp.NET Core中如何优雅的管理用户机密数据

    在Asp.NET Core中如何优雅的管理用户机密数据 背景 回顾 在软件开发过程中,使用配置文件来管理某些对应用程序运行中需要使用的参数是常见的作法. 在早期VB/VB.NET时代,经常使用.ini ...

  6. c语言成绩管理程序设计,成绩管理程序设计报告(含代码C语言

    <成绩管理程序设计报告(含代码C语言>由会员分享,可在线阅读,更多相关<成绩管理程序设计报告(含代码C语言(19页珍藏版)>请在人人文库网上搜索. 1.大连民族学院计算机科学与 ...

  7. 如何优雅的管理游戏资源

    在游戏的开发过程中,前期的规划 往往比 后期的"优化"更为重要!比如多分辨率适配,如果前期没有规划好,可能导致的情况是,画面只在当前测试开发机或者一部分机型正常显示.做了多套资源适 ...

  8. 【VBA(一):For循环】【Excel中宏的使用+手工书写VBA代码+使用For循环+小结及练习】

    文章目录 Excel中宏的使用 录制宏 优缺点 录制相对引用的宏 案例 手工书写VBA代码 新建模块 使用For循环 案例 小结及练习 定义 宏 VBA(ALT+F11) 相关概念 定位 制作工资条 ...

  9. 深入Quartz,优雅地管理你的定时任务

    深入Quartz,优雅地管理你的定时任务 1 初识Quartz 2 Quartz基础使用 2.1 基于时间间隔的定时任务 2.2 基于Cron表达式的定时任务 3 Quartz解读 3.1 Job 3 ...

最新文章

  1. “不一样”的真实渗透测试案例分析
  2. 的setinterval函数_Vue定时器与JS 定时器 setInterval() 和 setTimeout()
  3. 【数据结构与算法】之深入解析“二叉搜索树中的搜索”的求解思路与算法示例
  4. 产品经理必须知道的一点知识:三种方法判断一个产品该不该做
  5. configure: error: You need a C++ compiler for C++ support.
  6. php cdata,PHPcdata处理(详细介绍)_PHP教程
  7. 学Python半年,56岁的潘叔叔晒出99分成绩单,你呢?
  8. 从服务器检索时出错dfdferh01_基于客户端-服务器的网络编程模型
  9. 如何阻止复制剪切和粘贴事件
  10. sublime text plugins
  11. 面试题之Servlet工作原理
  12. bzoj 4832 [Lydsy1704月赛]抵制克苏恩 期望dp
  13. my sql实验视图_数据库SQL 视图的创建及使用实验报告(共5篇)
  14. 我写的万年历插件(含天干地支,农历,阳历,节气,各种节假日等),基于MooTools 1.4
  15. 商业变现永不眠(二) — 如何具体规划自己产品的商业化路径?
  16. 通用css样式模板,
  17. Mysql-学习笔记汇总
  18. 使用MindSpore进行一阶导数计算
  19. c语言随机数字密码生成器,随机数生成器(浮点数整型数)
  20. 福利:tumblr五年驾龄老司机必备利器

热门文章

  1. 关于git的commit提交回退的三种命令模式
  2. Python+Appium实现京东双十一自动领金币
  3. u盘UEFI模式安装Windows10和ubuntu18.04双系统
  4. 企业电子招投标采购系统源码之电子招标采购是管理复杂供应链和多层供应商的高效方式
  5. 采购系统是如何管理供应商的?
  6. matlab错误的代码,matlab代码纠正错误
  7. 算法设计与分析基础 第六章谜题
  8. 写一个登录界面连接数据库,判断用户名和密码
  9. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制
  10. with dlz mysql 条件_Bind-DLZ with MySQL