写代码

写代码注意了!打死都不要用 User 这个单词

℡╲_俬逩灬. 提交于 2020-01-10 06:49:26
当你意识到你在项目开始时做的轻量、简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上。 现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预期,如果一开始就用正确的方式来做,就不会发生这样的事。 今天,我要告诉你的是一个经常犯的错误,一个会给你带来无穷无尽的问题的单词,那就是“users”。 这个单词有两个最基本的错误: 1、对你的需求来说 “User” 几乎从来都不是一个好的描述。 2、“User” 会导致一个基本的设计安全缺陷。 “user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 最开始,没有任何一个软件系统真的有使用者存在。乍一看“user”是一个好的描述,但是你稍微一想就会意识到你的业务逻辑实际上比这要复杂的多。 我会使用三个例子,从一个极端的情况出发。 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 不再一一列举。一些与人类相关的基本概念是“旅客”,“代理”(网站也可是看作代理)和“购买者”。 “user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。Unix (这些天被称为POSIX)有用户,他们可以登录并执行代码。这样看起来很不错吧

优秀 Java 程序员写代码的风格

筅森魡賤 提交于 2020-01-03 01:41:52
往 期 精 彩 推 荐 【1】 Java Web技术经验总结 【2】 15个顶级Java多线程面试题及答案,快来看看吧 【3】 面试官最喜欢问的十道java面试题 【4】 从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!! 【5】 福利:100G Java全套学习视频免费送了 今天突发奇想,对编码习惯和 编程风格 很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! 来自《The Elements of Java Style》-《Java编程风格》一书,值得一读的书籍,会让你在细节上节省很多时间,合作之间更加愉快! 好处不多说了,但是有几个原则如下 1.保持原有风格 2.坚持最小惊奇原则 3.第一次就做对 4.记录所有非规范行为 格式规范 1.缩进嵌套的代码:在每个代码块和嵌套中加入缩进,缩进代码,加强可读性。这些地方包括【类定义,内部类定义,方法定义,静态块,for循环语句,if-else语句,try、catch和finally块,匿名内部类,while语句,do-while语句】 2.断开很长的句子:第一,如果包含了逗号,那么在每一个逗号后面都另起一行,把逗号后面的每一个表达式都和逗号前面的表达式的第一个字母对齐。第二,应该在优先级最低的运算符之前断行。 3.使用空白:关键字和左括号之间,右括号和紧随其后的关键字

2019

帅比萌擦擦* 提交于 2020-01-02 13:51:34
2019结束了,写篇客,感叹一下。现在就开始感叹了,真的是老了。 一边感叹我上学晚,今年25了,才毕业一年,跟我同龄的都大约有了2、3的工作经验了。 一边又很庆幸,我来到的公司还是很好的,大佬们都很照顾我,我也学会了很多很多的东西,在此,再次感谢公司的各位大佬。 写以下几条总结吧 1、关于感情:谁都不愿意去做一件没有结果的事情,谁也不愿意等一个永远也等不到的人。有这些时间,不如努力学点东西,提升自己 2、关于工作:一定要善于总结,好记性不如烂笔头,把自己趟过的坑写个博客记下来,下次遇到问题就可以很快的有解决方向 3、关于欠债:出来混,迟早是要还的,只要一天还在这个圈子里,那些年欠下的数据结构和算法设计,迟早是要还回来的 4、不要老是cv大法,应该想着怎么少写代码,将代码的复用性提高,这个过程会学到很多东西,也会提升自己的水平,改善写代码的思维与角度 5、改掉毛毛躁躁的毛病 6、生气不能解决问题,只会产生新的问题 总结:2020给自己定了2个小目标,看明年的这个时候能不能实现吧,还剩364天 来源: CSDN 作者: java_xxxx 链接: https://blog.csdn.net/java_xxxx/article/details/103778013

统计自己写的代码量命令

拜拜、爱过 提交于 2019-12-29 10:05:18
git log --since=11.days --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since=11.days --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done 来源: https://www.cnblogs.com/zhf123/p/12114247.html

写代码有这些想法,同事才不会认为你是复制粘贴程序员

亡梦爱人 提交于 2019-12-29 09:23:40
前言 最近做完12月份版本需求,有一些思考不够深入的代码,因此写一下总结,希望大家日常写代码多点思考,多点总结,加油!同时哪里有不对的,也望指出。 一、复杂的逻辑条件,是否可以调整顺序,让程序更高效呢。 假设业务需求是这样:会员,第一次登陆时,需要发一条感谢短信。如果没有经过思考,代码直接这样写了 if(isUserVip && isFirstLogin){ sendMsg(); } 假设总共有5个请求,isUserVip通过的有3个请求,isFirstLogin通过的有1个请求。 那么以上代码,isUserVip执行的次数为5次,isFirstLogin执行的次数也是3次,如下: 如果调整一下isUserVip和isFirstLogin的顺序呢? if(isFirstLogin && isUserVip ){ sendMsg(); } isFirstLogin执行的次数是5次,isUserVip执行的次数是1次,如下: 酱紫你的程序是否更高效呢? 二、你的程序是否不经意间创建了不必要的对象。 举个粟子吧,判断用户会员是否处于有效期,通常有以下类似代码: //判断用户会员是否在有效期 public boolean isUserVIPValid() { Date now = new Date(); Calendar gmtCal = Calendar.getInstance();

C#写日志

馋奶兔 提交于 2019-12-29 04:53:29
  在做程序的时候,经常会用到写Log日志这个功能,大佬写的很是齐全,不过这个我就写一个最简单的吧...   贴一个Log类: class Log { public static void Save(string message) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter("" + AppDomain.CurrentDomain.BaseDirectory + "\\log.txt", true)) { sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + message+ "\r"); sw.Flush(); sw.Close(); //数据写入log.txt } } }   上面的代码唯一的亮点就是 AppDomain.CurrentDomain.BaseDirectory   这句代码的意思是找到程序的基目录,其实就是本程序的Debug目录下,更多的详情可以参考 这篇文章 。   双\\是\的意思,避免转义。    来源: https://www.cnblogs.com/yunquan/p/7649121.html

编程同写作,写代码只是在码字

核能气质少年 提交于 2019-12-28 15:49:48
编程同写作,写代码只是在码字 原文作者: Phodal Huang 原文链接 看到一篇文章 《We Are Typists First, Programmers Second》 ,日期是2008年,好早的一篇文章。当现在打算以一个新人的身份重新进入编程领域,或许是受《重来》的影响,或者只是在重新思考——我们究竟应该如何去编程。 写代码只相当于写字   编程这件事情实际上一点儿也不难,当我们只是在使用一个工具创造一些东西的时候,比如我们拿着电烙铁、芯片、电线等去焊一个电路板的时候,我们学的是如何运用这些工具。虽然最后我们的电路板可以实现相同的功能,但是我们可以一眼看到差距所在。   换个贴切一点的比喻,比如烧菜做饭,对于一个优秀的厨师和一个像我这样的门外汉而言,就算给我们相同的食材、厨具,一段时间后也许一份是诱人的美食,一份只能喂猪了——即使我模仿着厨师的步骤一步步地来,也许看上去会差不多,但是一吃便吃出差距了。   我们还做不好饭,还焊不好电路,还写不好代码,很大程度上并不是因为我们比别人笨,而只是别人比我们做了更多。有时候一种机缘巧遇的学习或者bug的出现,对于不同的人的编程人生都会有不一样的影响(ps:说的好像是蝴蝶效应)。我们只是在使用工具,使用的好与坏,在某种程序上决定了我们写出来的质量。   写字便是如此,给我们同样的纸和笔(ps:减少无关因素)

菜鸡程序员是如何写代码的?

依然范特西╮ 提交于 2019-12-18 00:17:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 每个程序员都要历经从菜鸡到大牛过程蜕变胡过程。当初大家起点都差不多,工作多年后,有些人依然停留在菜鸡,有些人却已成为大牛,所有的事情,都是一点一滴习惯养成。让我们看看菜鸡程序员是如何写代码的?有可能找到你当初的影子,甚至是现在的影子。 一、命名不规范 命名很随意,当时写代码特别High,什么奇奇怪怪的命名都有的:xiaonaigou,xxxx,j1,jl,llst.完全意识不到全名规范的价值和意义。 二、日志不规范 日志? 那是什么鬼东西,能吃么? 曾经有一个从文思海辉出来的小伙伴,三年后端工程师经验,出了问题不知道怎么解决。只好重启。找我来协助,问他,怎么错了? 不知道。 日志呢? 没有。 晕,那怎么解决问题,神仙也搞不定啊。 后来才知道,他们解决问题都是本地改代码然后直接部署,重新访问看错误消失没,没有消失就继续在本地改源码。 三、拒绝写接口和假数据 一个菜鸡不可怕,可怕的是菜鸡遇到菜鸡 。曾经有一个项目中的两个菜鸡,一个前端一个后端,他们很欢快的调接口,根本不写文档 ,两个人效率特别高。直到有一天,发现项目可能做不完了,需要另外两个前端菜鸡协助一下。 新来的两个菜鸡要获取后端的数据,不知道接口的Url地址,不知道Get还是Post,不知道发送的参数和返回值。 就这样写! 我压根没想到可以这么写代码

互联网公司的技术总监都敲代码吗?

前提是你 提交于 2019-12-17 18:54:18
这是一个非常敏感的话题,每次谈论到技术总监要不要写代码的时候,总会引起一片争论。 有的程序员说技术总监如果不写代码怎么能领导好技术团队;有的说技术总监还需要写代码?如果技术总监都需要写代码的话,那技术团队有多操心呐。正反观点看起来都蛮有道理的,我也试着和大家聊聊这个话题。 我感觉自己还是蛮有资格来讨论这个话题的,我有过15人左右技术团队负责人的经历、也有过管理超50多人研发的经验,也经历了从一个程序员到一个技术管理者身份转变的历程,所以方便从各个角度来看待这个问题。 任何问题抛开背景来讨论都是耍流氓。 技术总监要不要写代码这个话题,其实也是需要看公司是什么样的背景、处于什么样的阶段、技术总监管理人员的规模来定。 另外技术总监只是一个统称,很多公司还会分部门技术总监、研发中心技术总监等,不同级别也需要不同的讨论。 首选探讨一下什么样的技术总监需要写代码,这里的写代码指的是参与到具体的编码实现。个人认为有以下 3 种情况: 01 技术驱动型的技术总监需要写代码 很多互联网公司产品,完全是依赖技术来构建的,公司的命脉都是技术,那么这个技术总监就一定要参与到核心代码的编写中。 比如我一直比较关注的创业公司 PingCAP ,他们公司的主要产品是 TIDB,一个开源分布式关系型数据库。我们知道开发一个高效的数据库是一个技术含量很高的事情,那么这种类型公司的技术总监一定会参与到编码中。 02

开始写游戏 --- 第二十一篇

一笑奈何 提交于 2019-12-14 08:48:31
开始写游戏 --- 第二十一篇   今天:     1、完成攻击指定对象功能     2、更改代码结构   上图:     1、完成攻击指定对象功能            2、更改代码结构       之前是直接在菜单命令里,写入动画逻辑的。       后来想了一下,为了方便后期各个人物的扩展配置,就改成了类结构:       {         这是战斗对象基类:                    这是角色继承的战斗对象类:                  }       通过该方法,可以便于执行战斗逻辑:                可以看到,只要执行这一句代码:                就可以方便的播放指定对象的相应动画了。       后期如果有其他动画的话,只要扩展 对象战斗类 RoleFightObject 即可。          来源: https://www.cnblogs.com/dmc-nero/p/12037370.html