10 Tips for Writing the Perfect Paper Like a gourmet meal or an old master painting, the perfect college paper is carefully constructed – not thrown together the night before it’s due.   Each part is just right, and the pieces are assembled to form t…
平时公司的代码安全扫描会给出不安全代码的告警,其中会检查代码中间的strcpy和sprintf函数,而要求使用strncpy和snprintf.今天我们讨论一下怎样写出完美的snprintf. snprintf是一个在C99才被加入如标准的函数,原来的各个编译器都有自己的实现,至少.NET2003编译器还要是使用_snprintf这样的函数名称. 而这些编译器间都有差异,而且Glibc库又有自己的不同的实现. 查询一下snprintf的函数的MSDN说明.如下: Let len be the l…
出发点 http://www.tuicool.com/articles/A7VrE33 阅读中文版本<编写质优代码的十个技巧>,对于我编码十年的经验,也有相同感受, 太多的坑趟过,太多的经历走过,对良好编码的技巧,只能说更加心有灵犀. 下面从英文原版阅读,结合自己的理解,尝试注解下作者的观点. 注解 -- 原文见下网址 https://cdiggins.github.io/blog/programming-tips.html 10 Tips for Writing Better Code 注:…
1. 前言 单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗? 作为一个Java开发者,也许你觉得自己对单例模式的了解已经足够多了.我并不想危言耸听说一定还有你不知道的——毕竟我自己的了解也的确有限,但究竟你自己了解的程度到底怎样呢?往下看,我们一起来聊聊看~ 2. 什么是单例? 单例对象的类必须保证只有一个实例存在——这是维基百科上对单例的定义,这也可以作为对意图实现单例模式的代码进行检验的标准. 对单…
There is an assumption in the world that an essay is something literary you write for school about a topic that no one but your teacher will ever care about. At first glance, the dictionary does nothing to allay that sense. The very first definition…
不知道有多少人像我一样,程序出现问题时添加函数添加变量解决,变量名用a,b,c等"简单"的字母来表示.不知道有多少人像我一样,看完自己的代码,心里暗骂"什么玩意儿!".没有规范的约束,写出的程序最多只能应付作业,根本达不到实用的目的.为了自己写出的程序能像诗歌一样优美,我开始学习前辈的经验. 第一章.整洁代码 代码的必要性.很多人幻想着能出现一个超级AI,能够把你的自然语言表述的指令直接翻译成程序然后执行,即使你的表述很随意.很抱歉,机器只会严格按照指令执行,你说的…
最近把手头这个安卓APP的所有事务性方法都写完了,有了以下体会,新手体会,老鸟轻拍   想写成优美代码的人一般都会有这样的想法: 一定要在写每一句代码,写每一个方法,构造每一个类的时候,都要记得优化:解耦以复用,拆分方法以复用,使用循环减少冗余,限制循环次数减少无效操作,等等..   这个想法一定没有错,但很多时候往往会是这样的情况: 当功能一复杂,比如你已经分解了几个方法,比如你已经使用了几层循环(有点过分...),比如在多线程中 你经常无法一步到位地完成那么多优化 这往往造成你写一句代码会思…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:NASA关于如何写出安全代码的10条军规.…
我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的.然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最有效的方法.本文我们将介绍一些有助于解决常见问题的通用设计策略和目标实现技术,即: 只做有目的性的优化 常量尽量使用枚举 重新定义类里面的equals()方法 尽量多使用多态性 值得注意的是,本文中描述的技术并不是适用于所有情况.另外这些技术应该什么时候使用以及在什么地方使用,都是需要使用者经过深思…
http://geek.csdn.net/news/detail/238243 原文:4 More Techniques for Writing Better Java 作者:Justin Albano 翻译:Vincent 译者注:如果现在要求对你写的Java代码进行优化,那你会怎么做呢?作者在本文介绍了可以提高系统性能以及代码可读性的四种方法,如果你对此感兴趣,就让我们一起来看看吧.以下为译文. 我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都…
题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次 思路如下: 子线程语主线程为互斥,可用SYNCHRONIZED.很容易想到如下代码 package concurrent; public class theFirstIdea{ /** * @param args */ public static void main(String[] args) { new Thread(//子线程 new Runnable(){ pu…
我花了10个小时,写出了这篇K8S架构解析 https://www.toutiao.com/i6759071724785893891/   每个微服务通过 Docker 进行发布,随着业务的发展,系统中遍布着各种各样的容器.于是,容器的资源调度,部署运行,扩容缩容就是我们要面临的问题. 基于 Kubernetes 作为容器集群的管理平台被广泛应用,今天我们一起来看看 Kubernetes 的架构中有那些常用的组件以及运行原理. Kubernetes 架构概述 Kubernetes 是用来管理容器…
至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病 但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到,并且pycharm打开的速度确实不敢恭维,即使固态硬盘也只能快了那么一丢丢.所以就尝试了很多IDE工具,最终选择了Sublime我也相信,通过我的介绍,你也会爱上它的. 首先其他语言有的sublime也必须得有,并且更好用,主要有: 集成代码分析 代码的自动补全 git功能的集成 Sublime command-line 工具 不过上述的…
This Chapter outlines the logical steps to writing a good research paper. To achieve supreme excellence or perfection in anything you do, you need more than just the knowledge. Like the Olympic athlete aiming for the gold medal, you must have a posit…
http://www.jb51.net/article/73376.htm Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路. 1.停止使用 KEYS * Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点.很多时候当我们关注一个redis实例的统计数据, 我们会快速地输入”KEYS *”命令,这样key的信息会很明显地展示出来.平心而论,从程序化的角度出发往…
    如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己就能找出规律和技巧.所以,要写出高质量的技术博客,首先要解决为什么要写的问题. 为什么要写 我一直很喜欢的一个学习方法是 Learning by teaching 一个课题,如果你能给不懂的人解释清楚,说明你对这个课题的理解足够深入.把一个课题展开来写,你可能会发现某些方面你还写不清楚,这往往说明你…
程序命名(针对那些不能混淆的代码) 容易输入的名字.比如:Fred,asdf 单字母的变量名.比如:a,b,c, x,y,z,或者干脆上中文比如(阿隆索肯德基) 有创意地拼写错误.比如:SetPintleOpening, SetPintalClosing.这样可以让人很难搜索代码. 抽象.比如:ProcessData, DoIt, GetData… 抽象到就跟什么都没说一样. 缩写.比如:WTF,RTFSC …… 使用拼音缩写也同样给力,比如: BT,TMD,TJJTDS 随机大写字母.比如:g…
https://blog.csdn.net/weixin_36604953/article/details/78156605 Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说“老子会爬虫”,就感觉特别有逼格,但是又不知从何入手,这里,博主给大家纠正一个误区:爬虫并不神秘,也不高级,是一个非常好上手和掌握的东西(当然,里面也有很多坑,也有很多细节,展开说的话其实也蛮复杂的,不过它的模式和套路就摆在那里…
简单介绍: 大家在阅读源代码的时候常常会看到一些比方以下这样特别难理解的代码. cancelEvent.setAction(MotionEvent.ACTION_CANCEL | (motionEvent.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); order = ((order) >> (INDEX_OFFSET -1) + 1) << INDEX_OFFSET; 类似与这样的"…
作为一名开发人员(WEB前端JavaScript开发),不规范的开发不仅使日后代码维护变的困难,同时也不利于团队的合作,通常还会带来代码安全以及执行效率上的问题.本人在开发工作中就曾与不按规范来开发的同事合作过,与他合作就不能用"愉快"来形容了.现在本人撰写此文的目的除了与大家分享一点点经验外,更多的是希望对未来的合作伙伴能够起到一定的借鉴作用.当然,如果我说的有不科学的地方还希望各路前辈多多指教.下面分条目列出各种规范要求,这些要求都是针对同事编码毛病提出来的,好些行业约定的其它规范…
lzJava基础进行中,今天偶然间看到的一个题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字.如下代码: import java.util.*;public class Main2{ public static void main(String[] args){ String[] date = {"Ling", "Yi", "Er", "San", "Si", "Wu&q…
想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代码这么难写?究竟怎样才能比较轻松地写出正确的链表代码呢? 只要愿意投入时间,我觉得大多数人都是可以学会的.比如说,如果你真的能花上一个周末或者一整天的时间,就去写链表反转这一个代码,多写几遍,一直练到能毫不费力地写出 Bug free 的代码.这个坎还会很难跨吗? 当然,自己有决心并且付出精力是成功…
有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写.其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一样可以写出像诗一样的Python代码. 1.导入模块 你是不是经常对调用模块时输入一长串模块索引感到头疼?说实在的,数量少的时候或许还可以勉强忍受,一旦程序规模上去了,这也是一项不容小觑的工程. #Bad import urllib.request url = r'http://www.landsb…
来源:深度强化学习实验室 每个人从本科到硕士,再到博士.博士后,甚至工作以后,都会遇到做研究.写论文这个差事.论文通常是对现有工作的一个总结和展示,特别对于博士和做研究的人来说,论文则显得更加重要. 那么该如果做突出研究,并写出高水平的论文呢? 那么该如果做突出研究,并写出高水平的论文呢? 那么该如果做突出研究,并写出高水平的论文呢? 本文整理了著名人工智能学者周志华教授<做研究与写论文>的PPT(时间比较早,但方法永远不会过时).其详细介绍了关于为什么要做研究?如何做研究,选择研究方向.选择…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra. 前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉满了.五花八门的代码让我不禁感叹,代码规范这条道路还是任重而道远- 那么今天就来给大家总结一波Java中的代码作死小技巧,熟练掌握这些小技巧后,保证能让你写出同事看不懂的代码~ 至于为啥要写出同事看不懂的代码,通过这次教训,我发现好处还是挺多的,简单举几个例子: 同事无法轻易修改你的代码,避免团队协作不当引入bug 塑…
写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct ConvertResult { public ConvertState State; public int Number; } public enum ConvertState { // 输入不合法 InValid = , // 输入合法 Valid = } public class StringHelper { publ…
在移动端会出现线条太粗的现象,简单来说,是因为手机端的像素单位和ui的图比例是2:1,所以ui图的1px边框对我们来说就是0.5px,但是浏览器渲染的最小单位就是1px,下面给几种方法用css写出0.5px边框1. html部分 <div class="border">测试0.5px边框</div>css部分.border{ position: relative; color: #555; font-size: 14px; line-height: 41px;…
1.setTimeout和setInterval都属于js中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直循环执行下去. 下面介绍一下两种定时器的语法: setTimeout(expression,milliseconds)  以及 setInterval(expression,milliseconds) 其中 expression是将要执行的某一项操作,而milliseconds则是延迟时间,expr…
对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如何写出优雅的css代…
神兽护体,代码无bug.经常看到代码注释的各种形状,这是一种程序员情怀.那么,如何能写出零 Bug 的代码呢,来看看@码农翻身 的这篇手册--零Bug的代码是怎么炼成的. 写零 Bug 一定少不了代码审查,推荐下 mindwind 的随笔思考Code Review 程序员的寄望与哀伤,是否也说出了你的心声.除此之外,@叶孤城___ 和其他几个伙伴做了Code Review的高效专业代码审核服务. 再来看下本期 fir.im Weekly 的其他干货内容. 『 iOS,Android, 前端开发干…