
软件工程
ivan820819
关注web
展开
-
OO设计模式和设计原则
OO设计模式和设计原则 1.1 设计正在“腐烂”的征兆(Symptoms of Rotting Design) 有四个主要的征兆告诉我们该软件设计正在“腐烂”中。它们并不是互相独立的,而是互相关联,它们是过于僵硬、过于脆弱、不可重用性和粘滞性过高。 1. 过于僵硬Rigidity Rigidity 致使软件难以更改,每一个改动都会造成一连串的互相依靠的模块的改动,项转载 2008-08-20 14:29:00 · 718 阅读 · 0 评论 -
守护进程二三事与Supervisor
转载自:https://github.com/szyhf/swoole_study/blob/master/%E7%95%AA%E5%A4%96%EF%BC%9A%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E4%BA%8C%E4%B8%89%E4%BA%8B%E4%B8%8ESupervisor.md守护的梦想有时候我们在运行服务端系统的时候会遇到这样转载 2017-02-24 15:37:13 · 1024 阅读 · 0 评论 -
从达标到卓越 —— API 设计之道
转载自:http://taobaofed.org/blog/2017/02/16/a-guide-to-api-design/新技术层出不穷,长江后浪推前浪,而浪潮褪去后能留下来的,是一些经典的设计思想。在前端界,以前有远近闻名的 jQuery,近来有声名鹊起的 Vue.js。这两者叫好又叫座的原因固然有很多,但是其中有一个共同特质不可忽视,那便是它们的 API 设计 非常优雅。转载 2017-03-08 09:59:38 · 439 阅读 · 0 评论 -
爬虫学习资源整理
转载自:https://zhuanlan.zhihu.com/p/25250739教程一:Python爬虫学习系列教程这个博主的这个爬虫学习系列教程,很详细啊,从入门到实战、进阶等都有详细的文档介绍,对爬虫感兴趣的小伙伴推荐一看。教程二:学习网站上的爬虫教程实验楼的爬虫教程不是太多,但是都有详细的讲解和代码,而且有在线开发环境,对于学习者是非常不错的。其中最喜欢的就是那转载 2017-03-08 10:05:31 · 785 阅读 · 0 评论 -
docker使用总结
安装注意不要直接用apt-get安装docker, apt-get安装的版本有些低。 安装用curl -sSL https://get.docker.com/ubuntu/ | sudo sh 可以安装最新版docker对linux内核版本有要求,内核版本不能太低, 如果太低会导致docker的一些功能不能使用, 比如docker exec 命令在低版本的linux内核下不转载 2017-03-13 11:00:58 · 320 阅读 · 0 评论 -
进攻即是最好的防御!19个练习黑客技术的在线网站
转载自:https://jaq.alibaba.com/community/art/show?articleid=683进攻即是最好的防御,这句话同样适用于信息安全的世界。这里罗列了19个合法的来练习黑客技术的网站,不管你是一名开发人员、安全工程师、代码审计师、渗透测试人员,通过不断的练习才能让你成为一个优秀安全研究人员。以下网站希望能给各位安全小伙伴带来帮助!若有其他的补充和推荐,欢迎给转载 2017-08-20 09:38:41 · 767 阅读 · 0 评论 -
Awesome Chrome 插件集锦
转载自:http://www.jeffjade.com/2017/01/23/118-chrome_awesome_plug-in子曾曰:“工欲善其事,必先利其器。居是邦也。”——语出《论语·卫灵公》;其后一百多年,荀子也在其《劝学》中倡言道:“吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者转载 2017-08-22 21:17:33 · 688 阅读 · 0 评论 -
一张图看明白Git的四个区五种状态
转载自:http://imtuzi.com/post/git-four-areas-five-states.html五种状态间的顺序操作四个区工作区(Working Area)暂存区(Stage)本地仓库(Local Repository)远程仓库(Remote Repository)五种状态未修改(Origi转载 2017-12-15 20:39:39 · 4727 阅读 · 1 评论 -
如何更精准的找到你需要的开源库
转载自:https://swiftcafe.io/post/github-search第三方开源库可能算是这个行业最美妙的东西之一,好的开源库经过完善的开发和验证,帮助我们解决了开发中遇到的很多通用问题,不需要我们重复发明轮子。 可以说开源社区极大的提高了整个产业的生产力。而说到开源项目,就不能不提 GitHub,它几乎已经成为了开源项目的首选存放位置。那么如何在 GitHub 上更高效精转载 2017-12-16 13:34:26 · 1391 阅读 · 0 评论 -
无处不在的Python
转载自:http://insights.thoughtworks.cn/python/1991年2月20号,后来被称为“仁慈的独裁者”的Guido van Rossum首次发布Python,当时这还只是作为一个名为Amoeba的操作系统项目中的辅助工具,Python甚至没有被正式立项。没有人会想到,Amoeba项目在1996年就停止开发,而Python却在20多年后发展成为最流行的编程语言转载 2017-12-30 12:19:03 · 421 阅读 · 0 评论 -
闯过这 54 关,点亮你的 Git 技能树
转载自:https://codingstyle.cn/topics/51另:https://codingstyle.cn/topics/54https://codingstyle.cn/topics/57https://codingstyle.cn/topics/67https://codingstyle.cn/topics/73https://codingstyle.cn/t转载 2017-01-11 16:56:52 · 427 阅读 · 0 评论 -
理解OAuth 2.0
转载自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.htmlOAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解OAuth的适用场合,让我举转载 2015-04-04 21:04:45 · 756 阅读 · 0 评论 -
降低耦合
按照软件工程学粗浅的理解,耦合就是程序中模块与模块间的关系的总和。上面的“模块”一词是一个模糊的概念,可以是一个变量、一个函数、一个类,或者是一个package(在大型软件项目中)。 显然,如果这样定义耦合的话,我们编的任何程序都有它的存在,而且它显然是不可避免的——你的程序用到了一个函数,它要调用其它函数,或被其它函数所调用,或读和写某个变量——在我们粗浅的定义里,这些都是耦合了。转载 2008-08-20 15:07:00 · 1115 阅读 · 0 评论 -
面向对象地本质-抽象
什么是面向对象的本质?近日在阅读一位网友在优快云博客上发表的文章,作者认为对象,对象的职责,以及对象之间的交互构成了OO思想的本质。在我看来,抽象更接近OO思想的本质。我是从以下几点考虑的:1.抽象使我们更接近于事物的本质。抽象的过程就是一个提炼存在于事物之间共同拥有的元素,而这些事务之间共同拥有的元素往往是这一事物区别于其他事物关键的东西,这些元素就构成了事物的本质。 2.抽象的思维方式转载 2008-08-20 14:46:00 · 618 阅读 · 0 评论 -
极速理解设计模式系列
极速理解设计模式系列:1.建造者模式(Builder Pattern)极速理解设计模式系列:2.观察者模式(Observer Pattern)极速理解设计模式系列:3.代理模式(Proxy Pattern)极速理解设计模式系列:4.原型模式(Prototype Pattern)极速理解设计模式系列:5.组合模式(Composite Pattern)极速理解设计模式系列:6.适配转载 2011-11-01 09:02:26 · 446 阅读 · 0 评论 -
骰子作画的算法
作者: 阮一峰程序员Scott MacDonald做了一个很有趣的项目----骰子作画。他用黑底白点的骰子。模拟出一张人像照片。把图像放大,就可以看得更清楚。他一共用了2500多颗骰子。最后的成品就是这样。任何一张图片都可以用骰子模拟出来,算法非常简单:将图片分成若干个区域,每个区域经过计算以后,用1-6之间的一个整数表示,代表骰转载 2011-12-02 10:34:38 · 970 阅读 · 0 评论 -
开源分词程序
imewlconverter - 深蓝词库转换( http://t.cn/h4YOCi ) ,可以将搜狗拼音输入法细胞词库( http://t.cn/hWFEQ )*.scel 格式转换成文本格式。然后,可以将提取的一些专用词库,用于中文分词接口中去。官方地址是:http://code.google.com/p/imewlconverter/转载 2011-12-16 09:32:02 · 753 阅读 · 0 评论 -
怎样写一个解释器
来源:http://blog.sina.com.cn/s/blog_5d90e82f01018ge9.html解释器是比较深入的内容。虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识,但是这篇教程并不是针对函数式编程的入门,所以我假设你已经学会了最基本的 Scheme 和函数式编程。如果你完全不了解这些,可以读一下 SICP 的第一,二章。当然你也可以继续读这篇文章,有不懂的转载 2013-02-22 10:02:02 · 468 阅读 · 0 评论 -
FFmpeg工具使用总结
转载自:http://www.cnblogs.com/reach296/p/4002020.html转载 2014-11-04 16:17:36 · 876 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对转载 2014-12-19 15:17:06 · 504 阅读 · 0 评论 -
FFmpeg工具使用总结
转载自:http://www.cnblogs.com/reach296/p/4002020.html一、 FFmpeg是什么?简单说,FFmpeg就是一个很好的,免费的,开源的视频转换工具。详细说,FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/转载 2015-03-28 13:10:57 · 927 阅读 · 0 评论 -
徒手用 Docker 构建自己的 PHP 开发环境
转载自:https://www.goozp.com/article/77.html1. 前言1.1 为什么要用 Docker ?是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时候如果有了Docker,只需要在机器上装个Docker,放上写好的Dickerfile,一行命令就自动完成这个事...转载 2018-03-24 10:06:58 · 2753 阅读 · 0 评论