<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[无花果树的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/write_down</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; write_down]]></copyright><item><title><![CDATA[Clean Code之路——注释]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/86380459</link><guid>https://blog.youkuaiyun.com/write_down/article/details/86380459</guid><author>write_down</author><pubDate>Sat, 12 Jan 2019 22:27:32 +0800</pubDate><description><![CDATA[本文主要目的用于识别何时需要代码注释，以及判断注释好坏。
代码注释原则

只有代码本身不能自解释时才需要注释，如果能通过变量命名等方式实现代码本身解释目的，就不需要注释。
尽量减少注释，因为随着代码的不断修改，注释往往会由于得不到好的维护与代码脱节。
注释和所注释的代码块强相关，注释不包含代码块之外的信息，例如对整个系统的说明或对另外一个代码文件的说明。

需要注释（好注释）

法律注释：应尽量简...]]></description><category></category></item><item><title><![CDATA[对python __new__()和__init__()的理解]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/83717202</link><guid>https://blog.youkuaiyun.com/write_down/article/details/83717202</guid><author>write_down</author><pubDate>Sun, 04 Nov 2018 16:36:29 +0800</pubDate><description><![CDATA[要点
__new__()是创建对象的构造函数，而__init()__是初始化函数；
__new__()返回的对象即为self；
__new__()会自动调用__init()__。
简单例子
class Person(object):
    def __new__(cls, name, age):
        print(cls)
        print('__new__ is calle...]]></description><category></category></item><item><title><![CDATA[python工厂模式代码示例]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/82432347</link><guid>https://blog.youkuaiyun.com/write_down/article/details/82432347</guid><author>write_down</author><pubDate>Wed, 05 Sep 2018 23:00:47 +0800</pubDate><description><![CDATA[直接复制下述代码并运行，环境为python 3.5



import sys


class Employee:
    @staticmethod
    def create(class_type):
        current_module = sys.modules[__name__]
        class_name = getattr(current_module, clas...]]></description><category></category></item><item><title><![CDATA[Lock对多线程执行效率的影响]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/81159870</link><guid>https://blog.youkuaiyun.com/write_down/article/details/81159870</guid><author>write_down</author><pubDate>Sun, 22 Jul 2018 22:23:01 +0800</pubDate><description><![CDATA[假定有nnn个线程执行同一段代码，如果不需要使用lock保护并发操作，则每个线程完成代码执行的时间理论上是相同的，假定为ttt。假设整个任务需要重复执行上述代码mmm次，n≤tn≤tn \leq t，则理论上该任务的执行时间为 T0=(k+1)⋅tT0=(k+1)⋅tT_{0} = (k+1) \cdot t （l&amp;amp;gt;0l&amp;amp;gt;0l&amp;gt;0）或k⋅tk⋅tk \cdot t（l=0l=0l=0）...]]></description><category></category></item><item><title><![CDATA[clean code之路——函数]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/80962630</link><guid>https://blog.youkuaiyun.com/write_down/article/details/80962630</guid><author>write_down</author><pubDate>Sun, 08 Jul 2018 21:07:52 +0800</pubDate><description><![CDATA[函数代码总原则


函数代码长度要短；  
一个函数只做一件事；  
写函数代码如同给写文章段落，要在合适的地方分段；  
写代码如磨论文，休想一次成形，优美的代码需要多次打磨。


函数代码方法论


函数最好不要超过20行，切函数内代码的缩进不超过两级。
衡量一个函数是否只做一件事的标准： 
- 是函数体代码实现的功能是否超出了函数名所限定的功能; 
- 函数体代码是否能够分成多个逻辑部分，如...]]></description><category></category></item><item><title><![CDATA[Clean Code之路——命名]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/80919110</link><guid>https://blog.youkuaiyun.com/write_down/article/details/80919110</guid><author>write_down</author><pubDate>Wed, 04 Jul 2018 21:47:27 +0800</pubDate><description><![CDATA[命名总原则

此处名字包括变量名、常量名、函数名、方法名、类名等。  


名字在文字上应具有意义，主要要说明是干什么的，一个好的命名是不需要注释的。例如：




# unmeaningful name
d = 20 # elapsed time in days  
# meaningful name
elapsed_time_in_days = 20


代码不仅要能运行，还能让自己和别人很快...]]></description><category></category></item><item><title><![CDATA[Ubuntu 16.04安装android app动态分析工具DroidBox]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/80669159</link><guid>https://blog.youkuaiyun.com/write_down/article/details/80669159</guid><author>write_down</author><pubDate>Tue, 12 Jun 2018 18:07:51 +0800</pubDate><description><![CDATA[DroidBox是什么

DroidBox是用来动态分析Android应用行为的工具，可以生成关于应用的如下信息： 
*package的hash值 
*收发的网络数据 
*文件读写操作 
*启动的服务和载入的类 
*通过网络、文件和短信泄露的信息 
*绕过的权限 
*利用Android API的密码学操作 
*广播接受者列表 
*短信发送和电话拨打行为

获取和安装DroidBox


Droid...]]></description><category></category></item><item><title><![CDATA[解决HttpClient访问https（包括通过http代理）出现unable to find valid certification path to requested target的问题]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/79114573</link><guid>https://blog.youkuaiyun.com/write_down/article/details/79114573</guid><author>write_down</author><pubDate>Sat, 20 Jan 2018 15:57:51 +0800</pubDate><description><![CDATA[1. 知识预备

要理解本文，需要掌握以下知识：  


https基本原理，包括证书分发和密钥协商等 [1]；  
http代理和https代理的基本原理 [2];     
常用的本地http代理工具，如Fiddler, BurpSuite；  
懂Java语言，了解HttpClient的基本功能和API [3]。


2. 问题描述与分析

使用httpclient写程序访问https页面，]]></description><category></category></item><item><title><![CDATA[BurpSuite的https代理原理]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/78990182</link><guid>https://blog.youkuaiyun.com/write_down/article/details/78990182</guid><author>write_down</author><pubDate>Sat, 06 Jan 2018 17:14:27 +0800</pubDate><description><![CDATA[BurpSuite的基本原理是搭配浏览器使用的http代理。对于HTTP协议，与一般的HTTP代理原理相同。对于HTTPS，即使用SSL的安全HTTP协议，BurpSuite需要发起“中间人攻击”以获得HTTP消息明文。具体原理如下。






1. 无BurpSuite的HTTPS交互过程


    Client                          Serv]]></description><category></category></item><item><title><![CDATA[Java学习笔记 －RMI]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/78947247</link><guid>https://blog.youkuaiyun.com/write_down/article/details/78947247</guid><author>write_down</author><pubDate>Mon, 01 Jan 2018 20:42:38 +0800</pubDate><description><![CDATA[RMI原理

RMI与服务化架构非常相似。server端提供方法调用（服务）并注册到rmiregristry，client端查询rmiregistry并调用方法获得服务。 
要实现上述过程，server端需要(1)按照interface实现远程方法；(2) 生成stub；(3)向rmiregristry注册， client端需要(1)按照interface实现远程方法的调用和；(2)获取stub。]]></description><category></category></item><item><title><![CDATA[Java学习笔记]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/78946242</link><guid>https://blog.youkuaiyun.com/write_down/article/details/78946242</guid><author>write_down</author><pubDate>Mon, 01 Jan 2018 17:09:34 +0800</pubDate><description><![CDATA[构造函数的继承]]></description><category></category></item><item><title><![CDATA[git学习笔记]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/78943817</link><guid>https://blog.youkuaiyun.com/write_down/article/details/78943817</guid><author>write_down</author><pubDate>Sun, 31 Dec 2017 23:12:07 +0800</pubDate><description><![CDATA[mac os安装git通过home-brew安装： 
1. 命令行中安装home-brew，拷贝 /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”； 
2. 通过home-brew安装git：brew install git。Github学习链接［1］廖]]></description><category></category></item><item><title><![CDATA[石坑崆（猛坑石）攻略]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/75771132</link><guid>https://blog.youkuaiyun.com/write_down/article/details/75771132</guid><author>write_down</author><pubDate>Sat, 22 Jul 2017 17:05:49 +0800</pubDate><description><![CDATA[1. 路线路线应配合附图阅读，特别是GPS卫星图。1.1 从韶关出发的路线图
韶关市->南岭森林公园入口：开车约1.5h，高速车少，山里穿行，云雾缭绕，风景甚好。  
森林公园入口->亲水谷入口：开车约15min  
亲水谷入口->亲水谷出口：长度2.5Km，拔高200m(626m->820m)，徒步需要1.2小时，10:22-11:34；穿行于点缀了若干瀑布群的苍翠之间，触手可及之处均为南方湿润之

石坑崆]]></description><category></category></item><item><title><![CDATA[Sublime Text 为SublimeREPL绑定快捷键]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/53112970</link><guid>https://blog.youkuaiyun.com/write_down/article/details/53112970</guid><author>write_down</author><pubDate>Thu, 10 Nov 2016 10:12:56 +0800</pubDate><description><![CDATA[安装SublimeREPL后，每次在ST(Sublime Text)中打开Python命令窗口都需要点击Tools->SublimeREPL->Python->Python，比较麻烦。所以，需要为该命令设置快捷键，方法如下： 
点击Preferences->Key Bindings 后在Default(Windows).sublime-keymap-User文件的最外层方括号中输入以下内容：]]></description><category></category></item><item><title><![CDATA[栈的原理和缓冲区溢出原理]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/53039805</link><guid>https://blog.youkuaiyun.com/write_down/article/details/53039805</guid><author>write_down</author><pubDate>Fri, 04 Nov 2016 22:17:01 +0800</pubDate><description><![CDATA[本文的目的是读完本文及参考文献后基本理解什么是栈，C语言函数调用过程中栈的变化，以及缓冲区溢出原理。]]></description><category></category></item><item><title><![CDATA[Sublime Text 为SublimeREPL绑定快捷键]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/52993497</link><guid>https://blog.youkuaiyun.com/write_down/article/details/52993497</guid><author>write_down</author><pubDate>Tue, 01 Nov 2016 10:27:10 +0800</pubDate><description><![CDATA[安装SublimeREPL后，每次在ST(Sublime Text)中打开Python命令窗口都需要点击Tools->SublimeREPL->Python->Python，比较麻烦。所以，需要为该命令设置快捷键，方法如下： 
点击Preferences->Key Bindings 后在Default(Windows).sublime-keymap-User文件的最外层方括号中输入以下内容：]]></description><category></category></item><item><title><![CDATA[Markdown实用语法参考]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/52987430</link><guid>https://blog.youkuaiyun.com/write_down/article/details/52987430</guid><author>write_down</author><pubDate>Mon, 31 Oct 2016 22:02:01 +0800</pubDate><description><![CDATA[本文给出了Markdown实用的稍复杂语法，包括多级有序列表、代码插入方法、链接插入方法、图片大小、图片居中、文字颜色等，至于标题、加粗等基本语法本文不作介绍。对Markdown设计思想的理解写过HTML的童鞋都知道HTML标签丰富，能制作具有复杂格式的页面，但是纯手打HTML是很困难的，且HTML源文件可读性非常差。不信就在浏览器中打开一个网页然后右键->查看网页源代码，要找到正文内容基本得靠搜索]]></description><category></category></item><item><title><![CDATA[Sublime Text 3 报错 There are no packages available for installation 的原因]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/52870164</link><guid>https://blog.youkuaiyun.com/write_down/article/details/52870164</guid><author>write_down</author><pubDate>Thu, 20 Oct 2016 10:58:40 +0800</pubDate><description><![CDATA[在Sublime Text 3 (ST3)中使用Package Control: Install Package报错There are no packages available for installation。出现上述错误的唯一原因是无法连接packagecontrol.io。本文附实验方法。]]></description><category></category></item><item><title><![CDATA[论科学家的财富创造与收入]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/52862561</link><guid>https://blog.youkuaiyun.com/write_down/article/details/52862561</guid><author>write_down</author><pubDate>Wed, 19 Oct 2016 19:52:36 +0800</pubDate><description><![CDATA[财富是人所需要的东西，包括物质、服务等。那么，科学家的研究成果算不算财富？肯定算！很多成果在刚研究出来时并不能直接应用，不能帮助别人解决问题，看上去不是别人需要的东西，也不能算财富。但是，应该知道新的科研成果是创新性的，在其提出时以绝大部分人的认知能力和当时技术水平是不足以将其充分应用的。这并不意味着该成果在以后没有用，例如一个数学模型在提出来的时候没有人注意到，但若干年之后被应用到工程领域解决了很]]></description><category></category></item><item><title><![CDATA[文献管理软件Mendeley优缺点分析]]></title><link>https://blog.youkuaiyun.com/write_down/article/details/52819034</link><guid>https://blog.youkuaiyun.com/write_down/article/details/52819034</guid><author>write_down</author><pubDate>Fri, 14 Oct 2016 21:08:42 +0800</pubDate><description><![CDATA[从阅读Mendeley手册，到实际使用文献导入、文献组织和参考文献整理，已达半年之久，可以说是重度用户。总体而言，Mendeley像是一个初看惊艳但脾气也大的妹子，在某些点上让你欲罢不能，但在另一些地方你不得不叹气忍受。根据实际使用体验，我大致总结了一下Mendeley的优点和缺点。]]></description><category></category></item></channel></rss>