relative; animation:sunRotate 5s; } 定义一个div 太阳sun,把红太阳放在中间,居中显示,定义position为absolute, 距左50%,剧上50%,左边距负的宽度的一半...,上边距负的高度的一半 #sun{ background: red; width: 150px; height: 150px; position: absolute; left: 50%...,定义position为absolute,距左50%,剧上负的高度一半,左边距负的宽度的一半 #earthline{ width: 200px; height: 200px; border:...margin-left: -100px; } 定义一个div 地球 earth,把地球放在水平居中,太阳轨道垂直地球居中,定义position为absolute,距左50%,剧上50%,左边距负的宽度的一半...,左边距负的宽度的一半 #moon{ width: 40px; height: 40px; background: blue; border-radius: 50%; position
写让别人能读懂的代码 随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本。而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码。...我们所写的代码除了让机器执行外,还需要别人来阅读。...所以我们要: 写让别人能读懂的代码 写可扩展的代码 写可测试的代码(代码应该具备可测试性,对没有可测试性的代码写测试,是浪费生命的表现) 其中2,3点更多强调的是面向对象的设计原则。...,如果你正在试图写一段注释,从某种角度来看,你正在试图写一段别人无法理解的代码。...RegisterUser(User user) { } public void SendEmail(User user) { } 布尔参数在告诉方法不止做一件事,违反了Do one thing 11.写具有表达力的代码
关于是否要去看源码这件事,简单聊聊我的看法吧。 首先,很多程序员会觉得程序员的最高境界就是 看牛逼源码 和 写牛逼源码 ,我个人也对这点不置可否,毕竟这就是学习 + 创造的过程嘛。...无论我们处于什么学习阶段,入门也好、精通也罢,都应该多去看别人的源码来学习,也应该多去写代码来实践。...同样,阅读知名项目的源码不仅能给我们的编程技能带来很大的提升,也会给我们求职(写简历、面试)增加核心竞争力。...但都是读源码,为啥有些人读的过程就像是看本小说,有些人读起来却像是在背课文?为啥有的同学读完后能自己写一个,有些同学读完就忘、啥收获都没有呢?...所以,不要看别人去读源码,你也跟着去读,更不用因此感到焦虑。 幸存者偏差,无论是校园学生还是职场员工,真正敢说自己读过牛逼源码的同学还是少数。
加锁、cas、 BIO、NIO的区别 spring框架的 IOC的好处 常用的MySQL 的语句优化 Explain 先来分析语句是否用到索引 设计表的时候从哪些角度去考虑 事务隔离级别,...数据库这俩引擎的 索引 b+树的实现 MySQL的主从同步是如何实现的(全量同步、增量同步) redis 的基本数据类型,缓存击穿和缓存雪崩,哨兵和主从同步 有redis mysql 怎么设计查询服务架构...TCP如何保证连接和传输的可靠性,在网络情况比较差的情况下如何保证的可靠性 简单说几个http状态码 301 和 302 的区别,301代表永久性转移 302代表暂时性转移 平常开发用的linux...为什么 kill 可能会出现杀不掉的情况,kill -9 和 kill 的区别在于发的信号不一样 我想查看日志的后十行 le 我想看日志的实时刷新的怎么看 tail,加参数吗 查看处于 time_wait...、established 的 tcp 数量怎么看,netstat -t 这个 -t 就是 tcp 问的问题,哪个部门的主要业务是什么的 主要技术栈,您对我有什么建议吗 tomcat
自从工作后写了大半年代码了,公司由于历史原因项目中充斥着各种不合理设计,写着写着就很容易烦躁,影响心情,写代码本来是快乐而富有创造的事情,面对这样的噩梦需要找到解决方案,那么方案就是这篇文章. ----...从业这么多年,接触过银行的应用,Apple的应用,eBay的应用和现在阿里的应用,虽然分属于不同的公司,使用了不同的架构,但有一个共同点就是都很复杂。...导致复杂性的原因有很多,如果从架构的层面看,主要有两点,一个是架构设计过于复杂,层次太多能把人绕晕。...但是你把它抽出来,凸显出来,给它一个合理的命名叫DistributionPolicy,后面的人一看就明白了,哦,这是一个分配策略,这样理解和使用起来就容易的多了,添加新的策略也更方便,不需要改原来的代码了...在加上上面介绍的把业务规则显现化,极大的提升了代码的可读性和可扩展性。用尚学的话说,用DDD写代码,他找到了创作的感觉,而不仅仅是码农式Coding。
"q", false, "-q 数据全部加载到内存中处理,默认是少量数据加载到内存操作,bool值") flag.BoolVar(&first, "f", false, "-f 使用首次遇到的一条数据...,默认是使用最后遇到的一条数据,bool值") flag.BoolVar(&unrepeat, "u", false, "-u 默认是使用重复数据,bool值") flag.Parse(
我们所写的代码除了让机器执行外,还需要别人来阅读。...所以我们要写: 让别人能读懂的代码 可扩展的代码 可测试的代码(代码应该具备可测试性,对没有可测试性的代码写测试,是浪费生命的表现) 其中2,3点更多强调的是面向对象的设计原则。...,如果你正在试图写一段注释,从某种角度来看,你正在试图写一段别人无法理解的代码。...一般来说,样式的写操作之后,如果有下面这些属性的读操作,都会引发浏览器立即重新渲染。...第一条是上一节说到的,DOM 的多个读操作(或多个写操作),应该放在一起。不要两个读操作之间,加入一个写操作。 第二条,如果某个样式是通过重排得到的,那么最好缓存结果。
反正任何别人写的系统并且由我接手的我都要批判一番,认为自己总能写的比他们好。 不过随着行业经验的增加,我发现自己写的代码也老是被别人吐槽。...结合平时和同行的沟通和观察,我发现不管是什么样的程序员,不管是经验丰富的老手还是刚出道的菜鸟,有一个共同的特征就是会抱怨别人写的代码有问题。...其次,对程序员而言,代码是自己写的还是别人写的是有区别的,这是铁律,每个程序员都有体会。对于别人写的代码,即使写的再好,在没有深刻理解的情况下, 程序员也会觉得读起来费劲, 难以维护。...举例来说,对于github上的牛逼项目,如果有程序员在没有接触过的前提下敢说轻而易举看的懂的,那就是图灵转世。...所以,程序员们, 不要吐槽别人的代码写的烂,想要轻轻松松一样看懂别人写的代码,不可能的, 除非计算机科学以及衍生的商业逻辑被重新定义,否则除非不当程序员, 不然没有办法可以避免。
并且将上面的代码放入这个文件,执行下面的命令: $ defendjs --input conardli.js --features dead_code --output ....scope 能力: $ defendjs --input conardli.js --features scope --output ....字符编码 还是使用 defendjs ,对我们的代码执行下面的命令: $ defendjs --input conardli.js --features literals --output ....mangling 功能: $ defendjs --input conardli.js --features mangle --output ....代码压缩 下面,综合利用一下几种技术,执行: defendjs --input conardli.js --output .
普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。如何写出优雅整洁易懂的代码是一门学问,也是软件工程实践里重要的一环。...: TODO 待处理的问题; FIXME 已知有问题的代码; HACK 不得不采用的粗糙的解决方案; 在注释中用精心挑选的输入输出例子进行说明; 注释应该声明代码的高层次意图,而非明显的细节; 不要在代码中加入代码的著作信息...: 不恰当的信息; 废弃的注释; 冗余注释; 糟糕的注释; 注释掉的代码; 唯一真正好的注释是你想办法不去写的注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试的方法名字太长或者繁琐,测试函数的名称就像注释; 不要追求太高的测试覆盖率,测试代码前面90%通常比后面10%花的时间少; 使用最简单的并且能够完整运用代码的测试输入...; 类中的方法越少越好,函数知道的变量越少越好,类拥有的实体变量越少越好; 通过减少变量的数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量的作用域; 只写一次的变量更好,如常量; 最好读的代码就是没有代码
普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。 来源:云栖社区 | 作者:竹涧 普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。...: TODO 待处理的问题; FIXME 已知有问题的代码; HACK 不得不采用的粗糙的解决方案; 在注释中用精心挑选的输入输出例子进行说明; 注释应该声明代码的高层次意图,而非明显的细节; 不要在代码中加入代码的著作信息...: 不恰当的信息; 废弃的注释; 冗余注释; 糟糕的注释; 注释掉的代码; 唯一真正好的注释是你想办法不去写的注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试的方法名字太长或者繁琐,测试函数的名称就像注释; 不要追求太高的测试覆盖率,测试代码前面90%通常比后面10%花的时间少; 使用最简单的并且能够完整运用代码的测试输入...; 类中的方法越少越好,函数知道的变量越少越好,类拥有的实体变量越少越好; 通过减少变量的数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量的作用域; 只写一次的变量更好,如常量; 最好读的代码就是没有代码
: TODO 待处理的问题; FIXME 已知有问题的代码; HACK 不得不采用的粗糙的解决方案; 在注释中用精心挑选的输入输出例子进行说明; 注释应该声明代码的高层次意图,而非明显的细节; 不要在代码中加入代码的著作信息...: 不恰当的信息; 废弃的注释; 冗余注释; 糟糕的注释; 注释掉的代码; 唯一真正好的注释是你想办法不去写的注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试的方法名字太长或者繁琐,测试函数的名称就像注释; 不要追求太高的测试覆盖率,测试代码前面90%通常比后面10%花的时间少; 使用最简单的并且能够完整运用代码的测试输入...; 类中的方法越少越好,函数知道的变量越少越好,类拥有的实体变量越少越好; 通过减少变量的数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量的作用域; 只写一次的变量更好,如常量; 最好读的代码就是没有代码...; 尽可能减少类和方法的数量; 以上规则按重要程度排列; 无论是设计系统或者单独模块,别忘了使用大概可工作的最简单方案; 整洁的代码只提供一种而非多种做一件事的途径,他只有尽量少的依赖。
对于修改代码,我很多年前就体验过一次,是修改自己写的代码,记得刚毕业的时候写了一个小的项目,是使用Java的Swing技术实现的,能够对一个表格做数据的增删改查。...,再也不想看自己写的代码了。...第二次的时候,导师从设计模式的角度给我提出了一些建议,然后我开始重新审视自己写的代码,改一改,调一调,看起来是那么回事了,依稀记得当时使用的是命令模式。...业务是跑起来了,后来的人可就惨了,我记得当时看一个类的方法,差不多有上千行,我看逻辑已经快懵了。然后小心翼翼的在里面添加一堆逻辑,为了不和其他人的逻辑干扰,我自己抽取了一个段代码。...当时找公司同事来提交补丁改已经来不及了,我现场打开电脑,查看代码,硬生生的调了一版,想起来除了无助就是无奈。 慢慢的,也确实有了一些经验,所以会时不时的看看别人写的代码,我觉得基本有两种状态。
常常回想起以前的自己,以前的我只是一个喜欢写代码的程序员,没有想过如何好好的规划自己的未来和与人相处之道。如果早知道下面的这些技巧会避免很多不必要的麻烦。...机会是自己把握的,但有时也是需要别人给你这个机会才行,如果可能,一定要和周围的同伴都打好关系,也许很多人在你看来很不起眼,但是过几年后你会发现一切都有可能变化,一些你几年前看着不起眼的人这时会让你刮目相看...若真的出现端口冲突,也有可能是连接到错误的网络设备或者未分配的IP地址,这种情况的异常不是真正的错误。解决问题的本质就是运用学会的知识和以前积累的经验,竭尽所能地去解决种种未知的事物。...6.你的努力和勤奋一定要让别人看的见 如果你的老板或上司看不到你的努力和勤奋,那么他们就不会给你更多的机遇。所以不要傻着自己偷偷的努力工作。...8.培养沟通能力 无论是在公司会议上还和别人的讨论中,如果你总是怯场,那么你就要好好的学习下如果克服了,多参加一些这样的聚会讨论,多多学习,因为学好这些能力和你写好代码一样重要。
;我为了方便都写到一个html中了;请把这个script标签中的内容单独写在一个js文件里 //整个插件写在一个立即执行函数里;就是function(){}();函数自执行;保证里面的变量不会与外界互相影响...; //最后面的undefined可不写;最好写了;保证里面再出现的undefined是未定义的意思;不被其他东西赋值; //好了下面是时候展现真正的技术了 //function前的!...号(叹号)或者;(分号)这不是写错了,为了防止那个二货写的js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...this.num = 0;//你也可以写一些其他的默认的东西;比如默认的变量啦;方便下面调用;这里写了什么都不会报错;只是有用没用的问题这行可以忽略 this.author...} //;给构造函数addHtml对象原型里添加属性(方法) addHtml.prototype = {//给函数写方法;这里可能不止一个函数;你还记得你在全局里写一个个的function
对于一名优秀的程序员来讲,学习和思考是贯穿整个职业生涯的事情。尤其是在当下日新月异的人工智能时代,越来越多的程序员重视自己的技能的提升。...3.jpg 4 、也许,学会利用框架来高效“偷懒”才是研发效率提升的关键因素 没有什么功能是无法实现的,如果网上的开源框架不行,就自己写一个更好的。 上面这句话是很多技术大牛的口头禅。...我们如愿以偿的做了程序员、当上了工程师,拿到了别人眼中的高薪,满怀希望的认为自己可以在这座城市站稳脚跟,也曾天真的认为未来一片大好。...我们都知道,程序员这条路很难,不仅要承受来自社会上的各种“默认的”标签,要有强大的思维能力来应对各种奇葩的需求,要有健康的身体来应对经常的加班,还要承受着外行人想象不到的压力。...不是为了别人,而是为了让自己在这个行业,能够更长久地走下去。
http://data.eastmoney.com/jgdy/tj.html 我们希望抓取的是js生成的表格。 ...这种带有js的网站抓取其实不是那么简单的,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取...今天我们使用的是第三种。 ? 我们希望爬取的是表格中的数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成的,下面这张图是源代码的截图。 ? ...然后我们就点击第二页、第三页不断的来观察究竟js代码访问了什么后台的url。...接下来我们就可以用urllib来获得api背后的json内容了,比如是这样的: ?
不过从这个例子里也能小小练习一下Promise的用法。 这里要乘100的原因是防止几毫秒差别太小被抢占。...同时,得益于Promise,我们在异步函数里可以这样写: (async () => { const data = await sleepSort([4, 5, 3, 6, 8]) console.log...(data) // [ 3, 4, 5, 6, 8 ] })() 真的是非常的实用,非常的高效啊(赞)。
平时大家编程时,有没有养成良好的注释习惯呢?一个好的注释习惯对于代码的回溯、重构,或者对于他人解读,都有着莫大的帮助,但是大家编码的时候有没有觉得写注释会稍稍的让编码慢下来一点呢?...嘿嘿,今天TJ君要给大家说的就是这样一个IDEA插件,Easy Javadoc Easy Javadoc,是一款自动翻译代码内容已形成类、方法或者属性注释的插件,同时他也可以进行中英文内容的互相翻译,碰到一些奇奇怪怪的词汇或者想起名的时候...,不需要再去额外的查字典点了。...我们看下实际的使用效果: 小伙伴会问了,那到底他是怎么自动注释的呢?...其实他就是后台自动通过翻译软件,将需要注释的类、方法或者属性进行翻译然后注释,所以说小伙伴只需要将方法的名字写的和实际效果一致,就能确保自动注释的效果。
领取专属 10元无门槛券
手把手带您无忧上云