<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Geeker Life</title>
  
  <subtitle>你还好吗？我的朋友。</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://www.itsmylife.top/"/>
  <updated>2020-04-15T02:34:38.662Z</updated>
  <id>http://www.itsmylife.top/</id>
  
  <author>
    <name>John Lou</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Golang开源之路，成功申请到Jetbrain开源Licence</title>
    <link href="http://www.itsmylife.top/2020/04/15/an-gopher-opensource-road/"/>
    <id>http://www.itsmylife.top/2020/04/15/an-gopher-opensource-road/</id>
    <published>2020-04-15T01:36:29.000Z</published>
    <updated>2020-04-15T02:34:38.662Z</updated>
    
    <content type="html"><![CDATA[<p><img src="/images/gopher.png" alt=""></p><p>如今golang已经成世界上最好用的编程语言，Jetbrain Ides也成为了世界上最好用的Ide。</p><p>试想下，夜深人静，打开世界上最好的笔记本（Mac Pro），拿着世界上最好的Ide，写着世界上最好用的编程语言，把自己的思维写进开源项目，这是何等体验，此生足矣。</p><a id="more"></a><p>01<br><a href="https://github.com/luaxlou/goutils" target="_blank" rel="noopener">goutils</a> 的目标很简单，就是解决开发生产力。</p><p>如今，已经是微服务的天下，因此一套开箱即用的工具库，显得极其重要。golang本身已经足够优秀，加上有很多优秀的开源项目，比如著名的gin，已经解决掉大部分问题。goutils要做的事并不多，因此，goutils并不大。</p><p>golang的最佳场景是服务端开发，goutils可以作为服务端研发的武器库。</p><p>因为笔者本身是自由创业者的缘故，因此将自己的代码开源并不会有太多操作上的问题。将非业务代码开源，也成为现在流行的趋势。</p><p>目前笔者的十几个项目都用上了自己的开源项目，往后，随着开发项目的增加，goutils的武器库也将继续增加。</p><p>02</p><p>Jetbrain的Goland是目前最好的Golang Ide。之前一直在用Vs Code，虽然Vs Code 也很优秀，但是对于用过Jetbrain系列的选手来说，无疑是有点痛苦。这个事，你用过就知道，并不是熟悉程度和快捷键的问题。</p><p>Jetbrain的开源许可申请条件还是比较宽的，只需要你持续3个月维护你的开源项目即可，详见下面的申请链接。</p><p><a href="https://www.jetbrains.com/zh-cn/community/opensource/#support" target="_blank" rel="noopener">Jetbrain开源许可申请</a></p><p><a href="https://www.jetbrains.com/?from=goutils" target="_blank" rel="noopener"><img src="/images/goland.png" width="100" height="100"></a> </p><p>最后，感谢Jetbrain 为开源事业提供的支持。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;&lt;img src=&quot;/images/gopher.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;如今golang已经成世界上最好用的编程语言，Jetbrain Ides也成为了世界上最好用的Ide。&lt;/p&gt;
&lt;p&gt;试想下，夜深人静，打开世界上最好的笔记本（Mac Pro），拿着世界上最好的Ide，写着世界上最好用的编程语言，把自己的思维写进开源项目，这是何等体验，此生足矣。&lt;/p&gt;
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
      <category term="golang" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/golang/"/>
    
    
      <category term="gopher" scheme="http://www.itsmylife.top/tags/gopher/"/>
    
      <category term="jetbrain" scheme="http://www.itsmylife.top/tags/jetbrain/"/>
    
      <category term="开源" scheme="http://www.itsmylife.top/tags/%E5%BC%80%E6%BA%90/"/>
    
  </entry>
  
  <entry>
    <title>致敬 - 2019。</title>
    <link href="http://www.itsmylife.top/2020/01/16/%E8%87%B4%E6%95%AC-2019/"/>
    <id>http://www.itsmylife.top/2020/01/16/%E8%87%B4%E6%95%AC-2019/</id>
    <published>2020-01-15T16:08:25.000Z</published>
    <updated>2020-04-14T18:23:00.530Z</updated>
    
    <content type="html"><![CDATA[<p>此刻，我正在倚窗听雨，忽然觉得，有值得回忆的东西，真的是很美好。</p><p>2019 对我来说，最大的收获是，重塑了思维模式，对自己进行了全新的解构。<br>如果说用四个关键词，我想用：财务自由，创业，成长，感恩。</p><a id="more"></a><p>01<br>进入2019，才算是真正的进入修行，思维修炼也是进入了爆发式增长。<br>2019 之初，收获了王阳明的心学，对知行合一颇为崇敬，感谢度阴山写的《知行合一王阳明》。<br>之后，便开启了修行之路。<br>后，开始在喜马拉雅上听《明朝那些事》。<br>再之后，便是一个人的长途迁徙。<br>2019 最需要感谢的一个人，周文强，一个我所遇到境界最高的人。<br>听他的日精进，让我对罗伯特·清奇的《富爸爸穷爸爸》有了全新的认识，并完全清晰透彻的了解了财富自由。<br>之后，经他的推荐，便有了：<br>朗达·拜恩的《秘密》宇宙吸引力法则，自己践行后，才真正感觉到神奇。<br>张德芬的《遇见未知的自己》，一句”亲爱的，外面没有人，只有你自己“，让我内心变得开始强大。<br>托马斯·斯坦利《有钱人和你想的不一样》，是时候，构筑财富蓝图了。<br>华勒斯·华特斯《失落的百年致富圣经》，对于致富，可以说是最实用的书。<br>这一年的成长，远远大于过去的35年。<br>感恩，感谢，所有以上。</p><p>02<br>创业，是 <a href="https://www.jianshu.com/p/919603986da4" target="_blank" rel="noopener">2019-01-01 凌晨</a>写下的计划。<br>2019 才真正开始创业，为这一年打下了一个很好的开端，因此，也赚到了人生的第一桶金。<br>为什么这么多人不鼓励年轻人创业，不创业，真的是人生一大损失。<br>如果说创业给我带来最大的收获是什么，那就是内心的自由，喜悦。<br>不要相信别人说的话，追随自己的内心，方向没有错，总有一天能达到目的地。过程中，只需要不断地学习就可以。</p><p>03<br>如今，2020已到。<br>该是新的起点开始了，我已经踏上了追寻之路，这一年，必将是喜悦的。</p><p>送给所有同路人，愿你们能够喜悦。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;此刻，我正在倚窗听雨，忽然觉得，有值得回忆的东西，真的是很美好。&lt;/p&gt;
&lt;p&gt;2019 对我来说，最大的收获是，重塑了思维模式，对自己进行了全新的解构。&lt;br&gt;如果说用四个关键词，我想用：财务自由，创业，成长，感恩。&lt;/p&gt;
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
  <entry>
    <title>写于 2019-01-01 凌晨</title>
    <link href="http://www.itsmylife.top/2019/01/01/%E5%86%99%E4%BA%8E%202019-01-01%20%E5%87%8C%E6%99%A8/"/>
    <id>http://www.itsmylife.top/2019/01/01/%E5%86%99%E4%BA%8E%202019-01-01%20%E5%87%8C%E6%99%A8/</id>
    <published>2018-12-31T18:56:35.000Z</published>
    <updated>2020-04-14T18:13:43.167Z</updated>
    
    <content type="html"><![CDATA[<p>2018年过去了，算是比较坎坷的一年。<br>虽然艰难了点，总算是完成了人生几件大事，算是一大节点。</p><a id="more"></a><ul><li>进入区块链领域</li><li>SpringCloud 体系的实践</li><li>将Golang作为最终的语言</li><li>搞定了k8s架构</li><li>开始Remote Work</li><li>顿悟人生</li><li>解决小孩上学问题</li></ul><p>2019 将是值得期待的一年<br>未来未可知，但是有两件事需要完成。</p><ul><li>技术沉淀</li><li>开始创业</li></ul><p>感谢2018，感谢互联网上无私奉献的人们。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;2018年过去了，算是比较坎坷的一年。&lt;br&gt;虽然艰难了点，总算是完成了人生几件大事，算是一大节点。&lt;/p&gt;
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
  <entry>
    <title>Mac下装上这些软件，让你的效率飞起来。</title>
    <link href="http://www.itsmylife.top/2017/01/15/mac-softwares/"/>
    <id>http://www.itsmylife.top/2017/01/15/mac-softwares/</id>
    <published>2017-01-14T16:12:23.000Z</published>
    <updated>2020-04-14T17:59:17.504Z</updated>
    
    <content type="html"><![CDATA[<p>工欲善其事，必先利其器。<br>Mac必装的软件，大部分是免费。</p><a id="more"></a><p>App类.</p><ul><li>[收费] 1Password <a href="http://1password.com：最好用的密码管理软件，没有之一。遗憾的是以前的版本一次性买断，现在月付有点小贵了。">http://1password.com：最好用的密码管理软件，没有之一。遗憾的是以前的版本一次性买断，现在月付有点小贵了。</a></li><li>[收费] Alfred <a href="http://www.alfredapp.com/：应该说是mac标配。" target="_blank" rel="noopener">http://www.alfredapp.com/：应该说是mac标配。</a></li><li>滴答清单 <a href="https://www.dida365.com：安排好你的工作，生活">https://www.dida365.com：安排好你的工作，生活</a></li><li>iTerm2 <a href="http://www.iterm2.com/：爱不释手。" target="_blank" rel="noopener">http://www.iterm2.com/：爱不释手。</a></li><li>Oh My Zsh <a href="http://ohmyz.sh/：同上。" target="_blank" rel="noopener">http://ohmyz.sh/：同上。</a></li><li>Keka <a href="http://www.kekaosx.com/：各种压缩包。" target="_blank" rel="noopener">http://www.kekaosx.com/：各种压缩包。</a></li><li>Wireshark <a href="https://www.wireshark.org/：这个，科学研究必备。" target="_blank" rel="noopener">https://www.wireshark.org/：这个，科学研究必备。</a></li><li>Evernote <a href="https://evernote.com/intl/zh-cn/：一直想找替代品，可是没找到，确实是很方便的工具。多端同步。" target="_blank" rel="noopener">https://evernote.com/intl/zh-cn/：一直想找替代品，可是没找到，确实是很方便的工具。多端同步。</a></li><li>Postman <a href="https://www.getpostman.com/：" target="_blank" rel="noopener">https://www.getpostman.com/：</a> 开发必备。</li><li>Robo 3T <a href="https://robomongo.org/：开发必备。" target="_blank" rel="noopener">https://robomongo.org/：开发必备。</a></li><li>Feem <a href="https://www.feem.io/：局域网共享目前认为最好的工具，用过就知道爽。" target="_blank" rel="noopener">https://www.feem.io/：局域网共享目前认为最好的工具，用过就知道爽。</a></li><li>New file menu free [<a href="https://apps.apple.com/us/app/new-file-menu-free/id1066302071?mt=12]" target="_blank" rel="noopener">https://apps.apple.com/us/app/new-file-menu-free/id1066302071?mt=12]</a>(<a href="https://apps.apple.com/us/app/new-file-m" target="_blank" rel="noopener">https://apps.apple.com/us/app/new-file-m</a> enu-free/id1066302071?mt=12): 有了它后，Finder 就可以直接New File了，个人认为就不需要安装XtraFinder之类了。</li><li>Typora.app <a href="https://typora.io/" target="_blank" rel="noopener">https://typora.io/</a>：真是被低估了的markdown写作神器，开启文件树加上github.com，简直是居家旅行，写作，笔记，必备之大杀器。</li></ul><p>Saas类：</p><ul><li>Tower.im <a href="https://tower.im/：remote标配。" target="_blank" rel="noopener">https://tower.im/：remote标配。</a></li><li>Chartmage <a href="http://chartmage.com/" target="_blank" rel="noopener">http://chartmage.com</a>：最好用的在线时序图，没有之一。</li><li>Naotu <a href="http://naotu.baidu.com/：百度的脑图很棒。" target="_blank" rel="noopener">http://naotu.baidu.com/：百度的脑图很棒。</a></li><li>Jianshu  <a href="https://www.jianshu.com/" target="_blank" rel="noopener">https://www.jianshu.com/</a>：这个不多说了，如果你有写作的习惯，或者把他当笔记，没有比这更简单的工具了。</li><li>Online audio converter (<a href="https://online-audio-converter.com/" target="_blank" rel="noopener">https://online-audio-converter.com/</a>: 如标题</li></ul>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;工欲善其事，必先利其器。&lt;br&gt;Mac必装的软件，大部分是免费。&lt;/p&gt;
    
    </summary>
    
    
      <category term="工具" scheme="http://www.itsmylife.top/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
      <category term="mac" scheme="http://www.itsmylife.top/tags/mac/"/>
    
      <category term="效率" scheme="http://www.itsmylife.top/tags/%E6%95%88%E7%8E%87/"/>
    
  </entry>
  
  <entry>
    <title>影响程序员一生的书单</title>
    <link href="http://www.itsmylife.top/2017/01/14/programer-best-books/"/>
    <id>http://www.itsmylife.top/2017/01/14/programer-best-books/</id>
    <published>2017-01-14T15:58:07.000Z</published>
    <updated>2020-04-14T18:03:38.913Z</updated>
    
    <content type="html"><![CDATA[<p>这些年看的书,整理了下比较经典的,希望给渴望成长的程序员一点帮助.</p><a id="more"></a><h2 id="编程思想"><a href="#编程思想" class="headerlink" title="编程思想:"></a>编程思想:</h2><ul><li><a href="https://book.douban.com/subject/1917831/" target="_blank" rel="noopener">《Agile Java》</a> <strong>JEFF LANGR</strong></li><li><a href="http://www.ituring.com.cn/book/211" target="_blank" rel="noopener">《重构：改善既有代码的设计》</a> <strong>Martin Fowler</strong></li><li><a href="https://book.douban.com/subject/2243615/" target="_blank" rel="noopener">《Head First 设计模式（中文版）》</a>  ** 弗里曼 ** </li><li><a href="https://book.douban.com/subject/5387402/" target="_blank" rel="noopener">《程序员修炼之道:从小工到专家》</a> ** Andrew Hunt  , David Thomas **</li><li><a href="https://book.douban.com/subject/4199741/" target="_blank" rel="noopener">《代码整洁之道》</a> ** Robert C. Martin **</li><li><a href="https://book.douban.com/subject/1477390/" target="_blank" rel="noopener"> 《代码大全（第二版）》</a> ** Steve McConnell **</li></ul><h2 id="敏捷开发"><a href="#敏捷开发" class="headerlink" title="敏捷开发:"></a>敏捷开发:</h2><ul><li><a href="http://www.ituring.com.cn/book/1897" target="_blank" rel="noopener">《软件开发本质论：追求简约、体现价值、逐步构建》</a> *<em>Ron Jeffries *</em></li><li><a href="https://book.douban.com/subject/1790225/" target="_blank" rel="noopener">《解析极限编程: 拥抱变化（第二版）》</a> ** Kent Beck **</li><li><a href="https://book.douban.com/subject/1140457/" target="_blank" rel="noopener"> 《敏捷软件开发:原则、模式与实践》</a> ** Robert C. Martin ** </li></ul><h2 id="软件设计"><a href="#软件设计" class="headerlink" title="软件设计"></a>软件设计</h2><ul><li><a href="http://www.ituring.com.cn/book/645" target="_blank" rel="noopener">《UML用户指南(第2版)》</a> <strong>Grady Booch ， James Raumbaugh ， Ivar Jacobson</strong></li><li><a href="http://www.ituring.com.cn/book/1573" target="_blank" rel="noopener">《微服务设计》</a> <strong>Sam Newman</strong></li></ul>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这些年看的书,整理了下比较经典的,希望给渴望成长的程序员一点帮助.&lt;/p&gt;
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
    
  </entry>
  
  <entry>
    <title>测试架构师修炼之道：从测试工程师到测试架构师</title>
    <link href="http://www.itsmylife.top/2016/08/03/jianshu_5100970/"/>
    <id>http://www.itsmylife.top/2016/08/03/jianshu_5100970/</id>
    <published>2016-08-03T15:31:42.000Z</published>
    <updated>2020-04-14T16:21:39.480Z</updated>
    
    <content type="html"><![CDATA[<h3 id="测试架构师修炼之道-从测试工程师到测试架构师"><a href="#测试架构师修炼之道-从测试工程师到测试架构师" class="headerlink" title="测试架构师修炼之道:从测试工程师到测试架构师"></a>测试架构师修炼之道:从测试工程师到测试架构师</h3><p>昨天刚入手的一本书,这是一本难得的实操性很强的书.<br>它让我对测试这个行业有了新的认识.快速的浏览过一遍后,我将它分享给了我的测试团队.</p><p>书的内容就不多介绍了,我推荐所有的测试工程师都读一下这本书,它会让你有更高的视角,同时会让你对你的工作更有信心.</p><p>感谢作者,让我读此书而受益.</p><a id="more"></a><img src="/images/698777-0ab07fd625b54f46.png" width="50%" height="50%">]]></content>
    
    <summary type="html">
    
      &lt;h3 id=&quot;测试架构师修炼之道-从测试工程师到测试架构师&quot;&gt;&lt;a href=&quot;#测试架构师修炼之道-从测试工程师到测试架构师&quot; class=&quot;headerlink&quot; title=&quot;测试架构师修炼之道:从测试工程师到测试架构师&quot;&gt;&lt;/a&gt;测试架构师修炼之道:从测试工程师到测试架构师&lt;/h3&gt;&lt;p&gt;昨天刚入手的一本书,这是一本难得的实操性很强的书.&lt;br&gt;它让我对测试这个行业有了新的认识.快速的浏览过一遍后,我将它分享给了我的测试团队.&lt;/p&gt;
&lt;p&gt;书的内容就不多介绍了,我推荐所有的测试工程师都读一下这本书,它会让你有更高的视角,同时会让你对你的工作更有信心.&lt;/p&gt;
&lt;p&gt;感谢作者,让我读此书而受益.&lt;/p&gt;
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>人件(原书第3版)：以人的视角解读软件工程项目管理</title>
    <link href="http://www.itsmylife.top/2016/08/03/jianshu_5101343/"/>
    <id>http://www.itsmylife.top/2016/08/03/jianshu_5101343/</id>
    <published>2016-08-03T15:31:39.000Z</published>
    <updated>2020-04-14T16:21:19.425Z</updated>
    
    <content type="html"><![CDATA[<p>今天花时间快速浏览了这本书,我觉得最需要这本书的是企业管理者,所以很快就推荐给了他.</p><p>这本书的地位就不多介绍了,信息量很多,需要时间整理,mark下.</p><a id="more"></a><img src="/images/698777-b78eb7f4e847f801.png" width="50%" height="50%">]]></content>
    
    <summary type="html">
    
      &lt;p&gt;今天花时间快速浏览了这本书,我觉得最需要这本书的是企业管理者,所以很快就推荐给了他.&lt;/p&gt;
&lt;p&gt;这本书的地位就不多介绍了,信息量很多,需要时间整理,mark下.&lt;/p&gt;
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>使用简书作为写作base,同步文章到hexo</title>
    <link href="http://www.itsmylife.top/2016/08/03/jianshu_5099255/"/>
    <id>http://www.itsmylife.top/2016/08/03/jianshu_5099255/</id>
    <published>2016-08-03T15:03:57.000Z</published>
    <updated>2020-04-14T16:55:50.728Z</updated>
    
    <content type="html"><![CDATA[<h3 id="Why"><a href="#Why" class="headerlink" title="Why?"></a>Why?</h3><p>简书把写作的门槛降到了最低,但是又不想放弃Blog.因此萌生了使用使用简书作为写作base,同步文章到hexo的想法.</p><a id="more"></a><h3 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h3><h4 id="同步策略"><a href="#同步策略" class="headerlink" title="同步策略"></a>同步策略</h4><p>如果仅仅是同步文章,太简单了,对于一个开放性的网站,抓取就够了.但是如果能同步markdown就完美了,但是简书这边没有提供api.<br>这里就两个方案</p><p>1 同步html,然后动态解析为markdown,复杂度较高<br>2 登陆,然后同步markdown,滑动验证码没研究过,感觉投入产出比相对较高,因此可以使用selenium做半自动登陆,下面是关键代码.</p><figure class="highlight ruby"><table><tr><td class="code"><pre><span class="line"></span><br><span class="line">@driver.get(BASE_URL + <span class="string">"/sign_in"</span>)</span><br><span class="line">@driver.find_element(<span class="symbol">:id</span>, <span class="string">"sign_in_name"</span>).clear</span><br><span class="line">@driver.find_element(<span class="symbol">:id</span>, <span class="string">"sign_in_name"</span>).send_keys username</span><br><span class="line">@driver.find_element(<span class="symbol">:id</span>, <span class="string">"sign_in_password"</span>).clear</span><br><span class="line">@driver.find_element(<span class="symbol">:id</span>, <span class="string">"sign_in_password"</span>).send_keys password</span><br><span class="line"></span><br><span class="line"><span class="comment">#等待1000秒直到滑动验证码被验证成功,点击登录</span></span><br><span class="line">wait = Selenium::WebDriver::Wait.new(<span class="symbol">:timeout</span> =&gt; <span class="number">1000</span>)</span><br><span class="line">wait.<span class="keyword">until</span> &#123; @driver.find_element(<span class="symbol">:class_name</span>, <span class="string">"gt_ajax_tip"</span>).attribute(<span class="string">'class'</span>).<span class="keyword">include</span>? <span class="string">'success'</span> &#125;</span><br><span class="line">@driver.find_element(<span class="symbol">:class_name</span>, <span class="string">'ladda-button'</span>).click</span><br></pre></td></tr></table></figure><p>这里选择了方案2</p><p>登陆状态的保存可以将cookie写入到文件,这样就不需要每次都启动selenium重新登陆一次.<br>同时,同步文章的时候考虑到如果使用selenium打开浏览器挨个请求一遍效率太低.所以在已有登陆cookie的情况下,将cookie写入到mechanize,使用mechanize做网络请求.</p><h4 id="图片的问题"><a href="#图片的问题" class="headerlink" title="图片的问题"></a>图片的问题</h4><p>这是开发到后面的是发现的,简书的图片是动态cache访问的,也就是说没有永久存在的地址,所以这个需要先下过来.</p><h3 id="用到的工具"><a href="#用到的工具" class="headerlink" title="用到的工具"></a>用到的工具</h3><ul><li>ruby</li><li>selenium</li><li>mechanize</li></ul><h3 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h3><ul><li>同样的思路可以用于登陆门槛较高的场景,比如说需要手机验证码登陆,等.</li><li>简书将很多写作体验就简化了,比如标签的设定,SEO的设定等的.要接受这点,才能让你专心到写作上.其实想想也是,如果你不做自媒体,又何必关心搜索引擎是否会收录.</li><li>花了点时间把想做的事做了,得益于这些前辈们开发了这么好的工具,让我如此简单的能达到我的目的,在此表示感谢.</li><li>写作的目的,如果想多了,自然负担就多了.</li></ul><p>完整代码 <a href="https://gist.github.com/luaxlou/4759eebf03fdd165b90d01eaa81cf6f3" target="_blank" rel="noopener">gist</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h3 id=&quot;Why&quot;&gt;&lt;a href=&quot;#Why&quot; class=&quot;headerlink&quot; title=&quot;Why?&quot;&gt;&lt;/a&gt;Why?&lt;/h3&gt;&lt;p&gt;简书把写作的门槛降到了最低,但是又不想放弃Blog.因此萌生了使用使用简书作为写作base,同步文章到hexo的想法.&lt;/p&gt;
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
    
      <category term="ruby" scheme="http://www.itsmylife.top/tags/ruby/"/>
    
  </entry>
  
  <entry>
    <title>一个单元测试描述Test::Unit::Assertions语法</title>
    <link href="http://www.itsmylife.top/2016/07/23/one-unittest-describe-testunit-assertions/"/>
    <id>http://www.itsmylife.top/2016/07/23/one-unittest-describe-testunit-assertions/</id>
    <published>2016-07-22T16:19:47.000Z</published>
    <updated>2020-04-14T14:16:43.443Z</updated>
    
    <content type="html"><![CDATA[<p>最进使用Ruby测试框架,选择使用 Test::Unit作为测试方法,下面的代码整理了常用的断言语法(其他的可能基本不太可能用上).当然对应的断言语法大多数都有not的反义判断.比如assert_true 和assert_not_true.</p><p>整体来说,感觉不太够用,毕竟这个库比较老.接下去可能会研究下minitest的源码.最后不行的话,可能会自己动手写测试框架.rspec还是算了</p><a id="more"></a><figure class="highlight ruby"><table><tr><td class="code"><pre><span class="line"><span class="keyword">require</span> <span class="string">'test/unit'</span></span><br><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">TestUnitAssertionsTest</span> &lt; Test::Unit::<span class="title">TestCase</span></span></span><br><span class="line"></span><br><span class="line">  <span class="function"><span class="keyword">def</span> <span class="title">setup</span></span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">end</span></span><br><span class="line"></span><br><span class="line">  <span class="function"><span class="keyword">def</span> <span class="title">test_assertions</span></span></span><br><span class="line"></span><br><span class="line">    assert_block <span class="string">"block返回值不正确"</span> <span class="keyword">do</span></span><br><span class="line">      <span class="literal">true</span></span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line">    assert_equal(<span class="string">'Yes'</span>, <span class="string">'Yes'</span>)</span><br><span class="line">    assert <span class="number">1</span>, <span class="string">'对象不能为false和nil'</span></span><br><span class="line">    assert_true <span class="literal">true</span></span><br><span class="line">    assert_raise <span class="string">'需要抛出一个异常'</span> <span class="keyword">do</span></span><br><span class="line">      raise Exception</span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line">    assert_nothing_raised <span class="string">'不能抛出异常'</span> <span class="keyword">do</span></span><br><span class="line">      <span class="comment"># raise Exception</span></span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line">    assert_raise_message <span class="string">"exception"</span> <span class="keyword">do</span></span><br><span class="line">      raise <span class="string">"exception"</span></span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line"></span><br><span class="line">    assert_instance_of String, <span class="string">''</span>, <span class="string">'预期的类型和实际类型不符'</span></span><br><span class="line">    assert_nil <span class="literal">nil</span></span><br><span class="line">    assert_respond_to <span class="string">'a string'</span>, <span class="symbol">:reverse</span>, <span class="string">'对象预期的方法不存在'</span></span><br><span class="line">    assert_match(<span class="regexp">/\d+/</span>, <span class="string">'five, 6, seven'</span>)</span><br><span class="line">    o = Object.new</span><br><span class="line">    assert_same o, o</span><br><span class="line">    assert_empty(<span class="string">""</span>)</span><br><span class="line">    assert_empty([])</span><br><span class="line">    assert_empty(&#123;&#125;)</span><br><span class="line">    assert_path_exist(<span class="string">"/tmp"</span>)</span><br><span class="line"></span><br><span class="line">    flunk <span class="string">'强制断言失败.看到这条失败断言,表示上面所有的断言通过.'</span></span><br><span class="line">  <span class="keyword">end</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">  <span class="function"><span class="keyword">def</span> <span class="title">teardown</span></span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">end</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">end</span></span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ ruby assertions_test.rb -v --use-color=<span class="literal">true</span> </span><br><span class="line">...</span><br><span class="line">Started</span><br><span class="line">F</span><br><span class="line">===============================================================================</span><br><span class="line">Failure: 强制断言失败.看到这条失败断言,表示上面所有的断言通过.</span><br><span class="line">test_assertions(AssertionsTest)</span><br><span class="line">assertions_test.rb:41:<span class="keyword">in</span> test_assertions</span><br><span class="line">     38:     assert_empty(&#123;&#125;)</span><br><span class="line">     39:     assert_path_exist(<span class="string">"/tmp"</span>)</span><br><span class="line">     40: </span><br><span class="line">  =&gt; 41:     flunk <span class="string">'强制断言失败.看到这条失败断言,表示上面所有的断言通过.'</span></span><br><span class="line">     42:   end</span><br><span class="line">     43: </span><br><span class="line">     44: </span><br><span class="line">===============================================================================</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">Finished <span class="keyword">in</span> 0.001588 seconds.</span><br><span class="line"></span><br><span class="line">1 tests, 17 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications</span><br><span class="line">0% passed</span><br><span class="line"></span><br><span class="line">629.72 tests/s, 10705.29 assertions/s</span><br><span class="line"></span><br><span class="line">Process finished with <span class="built_in">exit</span> code 1</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;最进使用Ruby测试框架,选择使用 Test::Unit作为测试方法,下面的代码整理了常用的断言语法(其他的可能基本不太可能用上).当然对应的断言语法大多数都有not的反义判断.比如assert_true 和assert_not_true.&lt;/p&gt;
&lt;p&gt;整体来说,感觉不太够用,毕竟这个库比较老.接下去可能会研究下minitest的源码.最后不行的话,可能会自己动手写测试框架.rspec还是算了&lt;/p&gt;
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
      <category term="ruby" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/ruby/"/>
    
    
      <category term="ruby" scheme="http://www.itsmylife.top/tags/ruby/"/>
    
      <category term="tdd" scheme="http://www.itsmylife.top/tags/tdd/"/>
    
      <category term="testunit" scheme="http://www.itsmylife.top/tags/testunit/"/>
    
  </entry>
  
  <entry>
    <title>Ruby TDD best choice,Test::Unit</title>
    <link href="http://www.itsmylife.top/2016/07/10/ruby-tdd-testunit-minitest-respec-and-rake/"/>
    <id>http://www.itsmylife.top/2016/07/10/ruby-tdd-testunit-minitest-respec-and-rake/</id>
    <published>2016-07-10T03:31:03.000Z</published>
    <updated>2020-04-14T14:18:06.570Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Ruby实践TDD的一些经验之谈"><a href="#Ruby实践TDD的一些经验之谈" class="headerlink" title="Ruby实践TDD的一些经验之谈"></a>Ruby实践TDD的一些经验之谈</h1><p>在实践TDD的过程中,使用了一些Ruby TDD框架,经过一番选择,最终选择了Test::Unit,实际上Test::Unit是一个较老的框架.</p><a id="more"></a><h2 id="列举TDD中要解决的一些实践性问题"><a href="#列举TDD中要解决的一些实践性问题" class="headerlink" title="列举TDD中要解决的一些实践性问题"></a>列举TDD中要解决的一些实践性问题</h2><ul><li>执行时长,这个很重要,否则CI是一件痛苦的事</li><li>编写效率,这个重要性同等,选择Ruby正是这个原因</li><li>可读性,在Ruby这已经算是不错了</li><li>可编程性,TDD可不是DSL能干的事,使用编程语言来支撑才是首选.如果使用的DSL,个人觉得是一种灾难</li><li>执行方式定制化,TDD是一种标准的工业级产品,但是如果执行方式无法定制化,应用场景就有些局限性.Rake可以适当的解决这个问题</li><li>断言语法的丰富性,丰富的具有语义的断言语法,不但可以节省代码,而且还可以提高可读性.目前在Ruby的测试框架中并没有太优秀的.好在Ruby动态语言的特性,非常容易扩展.</li></ul><h3 id="实践后的感受"><a href="#实践后的感受" class="headerlink" title="实践后的感受"></a>实践后的感受</h3><p>在实践过程中,我使用过,rspec,testunit,rspec,rake下面分别来谈谈几个工具的感受</p><h4 id="rspec"><a href="#rspec" class="headerlink" title="rspec"></a>rspec</h4><p>在使用Bundle生产GEM的时候,默认会生成Rspec,似乎describe系的DSL已经成为主流,但是实践过程中,发现太多不好用的地方,下面以Ruby中的Rspec为例一一列列举</p><ul><li>语法结构太过死板,如it 不能嵌套 it</li><li>测试复用困难,shared_examples只能在describe外部定义,无法接受describe的上下文,不可接收变量,只可接收实参</li><li>增加高级特性后,可读性急剧下降,如果不信的话,可以读下文档的示例代码.</li><li>可编程性太差,除了Ruby的语法,其他特性使用起来太难</li></ul><p>总结下,Rspec适合使用在GEM这样的工具上,测试场景比较简单,工程项目不建议使用</p><h4 id="minitest"><a href="#minitest" class="headerlink" title="minitest"></a>minitest</h4><p>minitest看上去是可以对Test::Unit的升级,但是实践后发现,除了对Reporter进行优化外,没有太实质的提升,而且支持的断言语法也大大减少.可能真的是把Test给mini了.既然这样也就没有选择的必要了.</p><h4 id="testunit"><a href="#testunit" class="headerlink" title="testunit"></a>testunit</h4><p>基本的TDD需求已经可以满足,对于断言部分,还是太少,写起来会比较类,不过因为是动态语言的关系,自己也扩展了不少.因此目前来说,没有更好的选择.</p><h4 id="Rake"><a href="#Rake" class="headerlink" title="Rake"></a>Rake</h4><p>Rake的引入,可以解决测试执行的单调.multitask可以支持多线程并行测试,可以极大的增加测试效率.并且可以配置一些默认参数,可以让测试执行更简单.</p><h3 id="为什么选择Ruby"><a href="#为什么选择Ruby" class="headerlink" title="为什么选择Ruby"></a>为什么选择Ruby</h3><ul><li>开发效率高</li><li>可读性强</li><li>支持多线程</li><li>GEM多</li></ul>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;Ruby实践TDD的一些经验之谈&quot;&gt;&lt;a href=&quot;#Ruby实践TDD的一些经验之谈&quot; class=&quot;headerlink&quot; title=&quot;Ruby实践TDD的一些经验之谈&quot;&gt;&lt;/a&gt;Ruby实践TDD的一些经验之谈&lt;/h1&gt;&lt;p&gt;在实践TDD的过程中,使用了一些Ruby TDD框架,经过一番选择,最终选择了Test::Unit,实际上Test::Unit是一个较老的框架.&lt;/p&gt;
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
      <category term="ruby" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/ruby/"/>
    
    
      <category term="ruby" scheme="http://www.itsmylife.top/tags/ruby/"/>
    
      <category term="tdd" scheme="http://www.itsmylife.top/tags/tdd/"/>
    
      <category term="testunit" scheme="http://www.itsmylife.top/tags/testunit/"/>
    
      <category term="minitest" scheme="http://www.itsmylife.top/tags/minitest/"/>
    
      <category term="rspec" scheme="http://www.itsmylife.top/tags/rspec/"/>
    
      <category term="rake" scheme="http://www.itsmylife.top/tags/rake/"/>
    
  </entry>
  
  <entry>
    <title>Nodejs Develop Tips</title>
    <link href="http://www.itsmylife.top/2016/04/03/Nodejs-Develop-Tips/"/>
    <id>http://www.itsmylife.top/2016/04/03/Nodejs-Develop-Tips/</id>
    <published>2016-04-03T00:28:07.000Z</published>
    <updated>2020-04-14T14:15:32.464Z</updated>
    
    <content type="html"><![CDATA[<h2 id="中文资料"><a href="#中文资料" class="headerlink" title="中文资料"></a>中文资料</h2><ul><li><a href="https://zhaoda.gitbooks.io/webpack/content/" target="_blank" rel="noopener">Webpack 中文指南</a></li><li><a href="http://reactjs.cn/" target="_blank" rel="noopener">Reactjs 中文文档</a></li><li><a href="https://github.com/guo-yu/koa-guide" target="_blank" rel="noopener">koa 中文文档</a></li><li><a href="http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten-properties/" target="_blank" rel="noopener">前端开发者不得不知的ES6十大特性</a></li><li><a href="http://bbs.reactnative.cn/topic/15/react-react-native-%E7%9A%84es5-es6%E5%86%99%E6%B3%95%E5%AF%B9%E7%85%A7%E8%A1%A8" target="_blank" rel="noopener">React/React Native 的ES5 ES6写法对照表</a></li><li><a href="http://es6.ruanyifeng.com/" target="_blank" rel="noopener">ECMAScript 6入门</a></li></ul><h2 id="中文社区"><a href="#中文社区" class="headerlink" title="中文社区"></a>中文社区</h2><ul><li><a href="http://cnodejs.org/" target="_blank" rel="noopener">CNodejs 社区</a></li></ul><h2 id="英文资料"><a href="#英文资料" class="headerlink" title="英文资料"></a>英文资料</h2><ul><li><a href="http://mongoosejs.com/docs/guide.html" target="_blank" rel="noopener">mongoose 文档</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;中文资料&quot;&gt;&lt;a href=&quot;#中文资料&quot; class=&quot;headerlink&quot; title=&quot;中文资料&quot;&gt;&lt;/a&gt;中文资料&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zhaoda.gitbooks.io/webpack/content/&quot; ta
      
    
    </summary>
    
    
      <category term="编程" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/"/>
    
      <category term="node.js" scheme="http://www.itsmylife.top/categories/%E7%BC%96%E7%A8%8B/node-js/"/>
    
    
  </entry>
  
  <entry>
    <title>Hexo Tips</title>
    <link href="http://www.itsmylife.top/2016/03/28/Hexo-Tips/"/>
    <id>http://www.itsmylife.top/2016/03/28/Hexo-Tips/</id>
    <published>2016-03-27T16:00:00.000Z</published>
    <updated>2020-04-14T14:18:48.551Z</updated>
    
    <content type="html"><![CDATA[<p><a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>能有更好的写作体验.</p><figure class="highlight ruby"><table><tr><td class="code"><pre><span class="line">p <span class="string">'Hello Hexo!!!!!!!!!'</span></span><br></pre></td></tr></table></figure><h3 id="install"><a href="#install" class="headerlink" title="install"></a>install</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ npm install hexo-cli -g</span><br></pre></td></tr></table></figure><a id="more"></a><h3 id="deploy"><a href="#deploy" class="headerlink" title="deploy"></a>deploy</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> ./d.sh</span></span><br><span class="line">hexo g</span><br><span class="line">hexo p</span><br></pre></td></tr></table></figure><h3 id="多地写博客"><a href="#多地写博客" class="headerlink" title="多地写博客"></a>多地写博客</h3><p>push to github</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> ./p.sh</span></span><br><span class="line">git add --all</span><br><span class="line">git commit -am 'new post'</span><br><span class="line">git push</span><br></pre></td></tr></table></figure><h3 id="rss生成"><a href="#rss生成" class="headerlink" title="rss生成"></a>rss生成</h3><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">npm i hexo-generator-feed --save</span><br></pre></td></tr></table></figure><h3 id="使用atom写博客"><a href="#使用atom写博客" class="headerlink" title="使用atom写博客"></a>使用atom写博客</h3><p>atom 插件</p><figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">apm install atom-hexo</span><br></pre></td></tr></table></figure><p>more info:<a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a></p><!--more--><hr><p>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;&lt;a href=&quot;https://hexo.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Hexo&lt;/a&gt;能有更好的写作体验.&lt;/p&gt;
&lt;figure class=&quot;highlight ruby&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;p &lt;span class=&quot;string&quot;&gt;&#39;Hello Hexo!!!!!!!!!&#39;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;

&lt;h3 id=&quot;install&quot;&gt;&lt;a href=&quot;#install&quot; class=&quot;headerlink&quot; title=&quot;install&quot;&gt;&lt;/a&gt;install&lt;/h3&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;$ npm install hexo-cli -g&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
    
    </summary>
    
    
      <category term="写作" scheme="http://www.itsmylife.top/categories/%E5%86%99%E4%BD%9C/"/>
    
    
      <category term="hexo" scheme="http://www.itsmylife.top/tags/hexo/"/>
    
  </entry>
  
  <entry>
    <title>Ruby元编程第二版：Ruby必看的一本书</title>
    <link href="http://www.itsmylife.top/2015/09/03/jianshu_1908695/"/>
    <id>http://www.itsmylife.top/2015/09/03/jianshu_1908695/</id>
    <published>2015-09-03T07:17:09.000Z</published>
    <updated>2020-04-14T14:13:36.805Z</updated>
    
    <content type="html"><![CDATA[<p><img src="/images/698777-2a77ebed5c1e1f2d.png" alt="Paste_Image.png"><br>这本书，不多解释了。如标题</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;img src=&quot;/images/698777-2a77ebed5c1e1f2d.png&quot; alt=&quot;Paste_Image.png&quot;&gt;&lt;br&gt;这本书，不多解释了。如标题&lt;/p&gt;

      
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>吃完饭后，逛了下新华书店</title>
    <link href="http://www.itsmylife.top/2015/09/03/jianshu_1908634/"/>
    <id>http://www.itsmylife.top/2015/09/03/jianshu_1908634/</id>
    <published>2015-09-03T07:13:54.000Z</published>
    <updated>2020-04-14T14:13:39.887Z</updated>
    
    <content type="html"><![CDATA[<p>　　昊海楼，那个七折书店关门了，现在改成了什么创业奶茶。也只能去旁边的新华书店。逛书店是我的一个习惯，通常都不带什么目的性的。看到好书的话一定会买，但是确实要是好书才行。</p><p>　　我大概算了下，平均五次左右，会有一次会有收获，其他时候通常是空手而归。在书的选择上，通常会倾向于外国的。因为外国人写书都会比较细，而且通常语言上会比较幽默一点。当然国内也有好书，只不过少点而已。</p><p>　　图灵的书必须是要关注的，购买的书里面，比例最大的也是图灵的书。怎么说呢，图灵的书，质量都会比较好，而且出了很多经典的书，比如犀牛书，《高性能网站建设指南》，head First系列，举不胜举。<br>　　<br>　　回到开头想说的，书店，一家家关门了。只有新华书店坚持着，但是计算机类的，也从最显眼的位置，搬到了一个角落。真希望能一直坚持下去。网购图书虽好，但是通常想看的书不一定有。而且，有些书，不翻翻的话，真的心里没谱。<br>　　<br>　　今天得到的一个结论是，现在新上架的书，对封面设计都非常讲究。就冲这设计，都很有购买欲望，挺好的。不过，翻过之后，确实，不如封面好看。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;　　昊海楼，那个七折书店关门了，现在改成了什么创业奶茶。也只能去旁边的新华书店。逛书店是我的一个习惯，通常都不带什么目的性的。看到好书的话一定会买，但是确实要是好书才行。&lt;/p&gt;
&lt;p&gt;　　我大概算了下，平均五次左右，会有一次会有收获，其他时候通常是空手而归。在书的选择上，
      
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
  <entry>
    <title>Agile Java：编程进阶必读</title>
    <link href="http://www.itsmylife.top/2015/08/25/jianshu_1707565/"/>
    <id>http://www.itsmylife.top/2015/08/25/jianshu_1707565/</id>
    <published>2015-08-25T15:30:35.000Z</published>
    <updated>2020-04-14T14:13:47.670Z</updated>
    
    <content type="html"><![CDATA[<p><img src="/images/698777-3bbbd3170e22f03d.png" alt="Paste_Image.png"></p><p>　　这本书是我工作的第三个年头在上海新华书店发现的。略厚的一本，看到之后，如获至宝。</p><p>　　这本书的编写思路是，先编写一个类似编写过程式的代码。一步一步的教你用TDD的思路去重构，最后得到一个比较ok的代码。他会告诉你哪里不太合适，并且教你如何用TDD去重构。</p><p>　　值得一提的是，这本书对于不懂Java的人来说，也能看得懂。因为例子浅显易懂，这个可以当作为Java的入门书籍。</p><p>　　在工作生涯中，有好几次编写复杂模块的时候用TDD的方式去实践。实践的结果是，开发速度没有明显下降，但是BUG率一直保持在0%，而且编码期间，我还会进行多次重构，以消除不合适的代码。当时的感觉超棒。<br>　　<br>　　可以说，这本书对我的编码风格影响最为深远。谨以此文作为对作者的感谢吧。　　</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;img src=&quot;/images/698777-3bbbd3170e22f03d.png&quot; alt=&quot;Paste_Image.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;　　这本书是我工作的第三个年头在上海新华书店发现的。略厚的一本，看到之后，如获至宝。&lt;/p&gt;
&lt;p&gt;　　这本书的编写思路
      
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>uml指南第二版：uml一本就够了</title>
    <link href="http://www.itsmylife.top/2015/08/23/jianshu_1680144/"/>
    <id>http://www.itsmylife.top/2015/08/23/jianshu_1680144/</id>
    <published>2015-08-23T06:35:46.000Z</published>
    <updated>2020-04-14T14:12:01.433Z</updated>
    
    <content type="html"><![CDATA[<p><img src="/images/698777-e8ac59089ff8fc4e.png" alt="uml指南第二版封面"></p><p>　　之前读过很多晦涩的uml教程，始终不知道所以然。<br>读完这本书，uml基本就掌握了，有人问我uml该怎么学，我都会直接推荐这本书。</p><p>　　个人认为，这是图灵出版的最有价值的一本书。</p><p>　　uml是否过时？<br>　　个人看法，目前还没有一个比uml更实用的图形表示语言。特别类图，既可以表示类，也可以表示领域模型，当然还可当做其他，比如实体关系，ERR。</p><p>　　引用里面的一句话，“成功的路上总是铺满错误”。</p><p>　　建模即是如此，需要不断地犯错，从犯错中总结，才能让这些标准化的工具为你所用，不然，它们只是晦涩的理论而已。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;img src=&quot;/images/698777-e8ac59089ff8fc4e.png&quot; alt=&quot;uml指南第二版封面&quot;&gt;&lt;/p&gt;
&lt;p&gt;　　之前读过很多晦涩的uml教程，始终不知道所以然。&lt;br&gt;读完这本书，uml基本就掌握了，有人问我uml该怎么学，我都会直接推荐
      
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>阅读:书目</title>
    <link href="http://www.itsmylife.top/2015/08/23/jianshu_1674689/"/>
    <id>http://www.itsmylife.top/2015/08/23/jianshu_1674689/</id>
    <published>2015-08-23T06:35:20.000Z</published>
    <updated>2020-04-14T14:11:47.926Z</updated>
    
    <content type="html"><![CDATA[<p>　　读书是一件很好的事情，借用图灵书籍里老用的一句话，站在巨人的肩膀上。这里记录一些自己读过的书和想要读的书,当然这些都是很棒的书。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;　　读书是一件很好的事情，借用图灵书籍里老用的一句话，站在巨人的肩膀上。这里记录一些自己读过的书和想要读的书,当然这些都是很棒的书。&lt;/p&gt;

      
    
    </summary>
    
    
      <category term="读书" scheme="http://www.itsmylife.top/categories/%E8%AF%BB%E4%B9%A6/"/>
    
    
  </entry>
  
  <entry>
    <title>开始写简书,放弃wordpress</title>
    <link href="http://www.itsmylife.top/2015/08/23/jianshu_1674635/"/>
    <id>http://www.itsmylife.top/2015/08/23/jianshu_1674635/</id>
    <published>2015-08-23T06:35:05.000Z</published>
    <updated>2020-04-14T16:20:59.920Z</updated>
    
    <content type="html"><![CDATA[<p>惯例，以Gantz开局</p><div class="image-package"><img src="/images/698777-430be2497960c5a0.png" data-original-src="http://upload-images.jianshu.io/upload_images/698777-430be2497960c5a0.png" data-image-slug="430be2497960c5a0" data-width="800" data-height="800"><br><div class="image-caption"></div></div><p>　　看来现在的科技是发达了,以前想实现的种种方式现在都被很好地解决.就拿互联网写作这件事来说,在这里被完美解决.不用太多的负担,只管专注去写就行.</p><p>　　简书的操作体验很棒,相比起来wordpress就难用多了.markdown的语法在熟悉中,markdown的写作看样子是很高效的,很适合html这种内容的编辑.</p><p>　　没有书目是很大德缺憾,不过可以挖掘挖掘,看这个能不能以其他方式被解决.最后看了下,看来是通过文集可以解决,不错.</p><p>　　接下来,我想从我一直想做的事情开始,就是做一个书单.</p><p>大概构思是这样的,分两条时间轴</p><p>　　1.读书单:列出想读的书目,以及愿望,也就是为什么想读.</p><p>　　2.读过的书:对读过的书进行整理,重新过一遍,温故而知新.</p><p>　　以前想用豆瓣来做这件事,但是最终也没研究出来怎么做</p><p><br></p><div class="image-caption"></div>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;惯例，以Gantz开局&lt;/p&gt;&lt;div class=&quot;image-package&quot;&gt;&lt;img src=&quot;/images/698777-430be2497960c5a0.png&quot; data-original-src=&quot;http://upload-images.jianshu.
      
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
  <entry>
    <title>午后，看电视《大舜》</title>
    <link href="http://www.itsmylife.top/2015/08/23/jianshu_1707568/"/>
    <id>http://www.itsmylife.top/2015/08/23/jianshu_1707568/</id>
    <published>2015-08-23T06:33:56.000Z</published>
    <updated>2020-04-14T14:12:35.828Z</updated>
    
    <content type="html"><![CDATA[<p>　　好久没有在周六日好好的看一部国产电视剧。看了两集，还不错。总体感觉是，不浮躁，不复杂。舜跟母亲被赶出了部落，不但不怨恨族人，还不时施已帮助。舜是个爱思考的孩子，“想沉重的问题，就要拖着沉重的东西”。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;　　好久没有在周六日好好的看一部国产电视剧。看了两集，还不错。总体感觉是，不浮躁，不复杂。舜跟母亲被赶出了部落，不但不怨恨族人，还不时施已帮助。舜是个爱思考的孩子，“想沉重的问题，就要拖着沉重的东西”。&lt;/p&gt;

      
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
  <entry>
    <title>能收拾好屋子的人，能写好程序</title>
    <link href="http://www.itsmylife.top/2015/08/23/jianshu_1800267/"/>
    <id>http://www.itsmylife.top/2015/08/23/jianshu_1800267/</id>
    <published>2015-08-23T06:33:01.000Z</published>
    <updated>2020-04-14T14:13:42.733Z</updated>
    
    <content type="html"><![CDATA[<p>　　收拾屋子这样的事情，是人人都会去做的。<br>　　会自己收拾屋子的人，通常是有代码洁癖的人。这样的人，对纷乱的事物会很焦虑。<br>　　没事收拾收拾屋子，收拾收拾办公桌，能减少压力。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;　　收拾屋子这样的事情，是人人都会去做的。&lt;br&gt;　　会自己收拾屋子的人，通常是有代码洁癖的人。这样的人，对纷乱的事物会很焦虑。&lt;br&gt;　　没事收拾收拾屋子，收拾收拾办公桌，能减少压力。&lt;/p&gt;

      
    
    </summary>
    
    
      <category term="随笔" scheme="http://www.itsmylife.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
  </entry>
  
</feed>
