首页 » 软件开发

选择编程语言重要的是品味 不必纠结于阵营

       ECUG最初名为Erlang China User Group,于2010年更名为Effective Cloud User Group,想了解一下名称的改变主要基于哪些考虑?这样的变化是否也代表了技术环境上,一个时代的变迁? Erlang是一门小众语言,我们在成立ECUG的时候,国内没有几个人对它感兴趣。这门语言特色鲜明,是服务端编程实践的一面旗帜。阅读全文 »

2016年1月23日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

MFC Ribbon界面设计

       Ribbon是类似于office2007样式的界面,它替代了传统的MFC程序里的菜单和工具栏  MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看  看下面的一个界面,是VC2010示例里的  看到它与默认Ribbon样式的区别:  工具自己设计,MFC提供的Ribbon控件基本都用上了;图片(位图)也是原资源没有的  那到底怎么实现呢?阅读全文 »

2016年1月21日
作者:鸡啄米 分类:软件开发 浏览: 评论:2

MFC CFile类读写文件详解

       CFile类提供了对文件进行打开,关闭,读,写,删除,重命名以及获取文件信息等文件操作的基本功能,足以处理任意类型的文件操作。  一个读写文件的例子:  文件I/O  虽然使用CArchive类内建的序列化功能是保存和加载持久性数据的便捷方式,但有时在程序中需要对文件处理过程拥有更多的控制权,对于这种文件输入输出(I/O)服务的需求阅读全文 »

2016年1月11日
作者:鸡啄米 分类:软件开发 浏览: 评论:4

MFC工具栏的创建、设计与使用实例

       本文通过实例说明MFC工具栏的创建、设计和使用方法,包括三个demo。 demo1:创建一个工具栏 demo2:停靠和浮动工具栏 demo3:点击菜单项显示和隐藏工具栏阅读全文 »

2016年1月6日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

软件开发的“三重门”

       前言 这篇文章必然是通过我的个人经历来写的。所以,我先说说个人经历吧。我的经历基本分成三个阶段。 第一阶段:我 刚毕业时在家乡的某银行工作,做些银行的业务系统,还搞些网络,电子邮件系统,OA什么的,因为大四的时候在老师的公司里实习,银行里的人际关系太复杂, 而且技术都包给了产商,所以在银行的每一天都觉得不能适应里面的工作环境。阅读全文 »

2015年12月30日
作者:鸡啄米 分类:软件开发 浏览: 评论:2

正则表达式30分钟入门教程(正则小白的圣经)

       30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然, 如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达 式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性阅读全文 »

2015年12月28日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

详解PHP压缩与解压Zip(PHPZip类)

       1. [代码]PHP压缩与解压Zip(PHPZip类) 2. [图片] 截图阅读全文 »

2015年12月23日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

架构设计之路(九):从CurrentUser说起

       CurrentUser,也就是当前用户,这是我们系统中大量使用的一个概念。 确认当前用户 当然,我们利用的是cookie:用户的ID存放在cookie中,服务器端通过cookie中的Id,查找数据库,得到需要的用户信息。 那么,这里就有一个安全问题,如何防止cookie的伪造或篡改?我们采用了以下方法: 首先,cookie中除了存放用户Id,还存放了一个加密过后的验证码阅读全文 »

2015年12月18日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

Java开发大神修炼宝典

       一、基础篇   1.1 JVM   1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收  1.1.2. 了解JVM各种参数及调优   1.1.3. 学习使用Java工具 jps, jstack, jmap, jconsole, jinfo, jhat, javap, … 1.1.4. 学习Java诊断工具 1.1.5. 自己编写各种outofmemory,阅读全文 »

2015年12月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

架构设计之路(八):MVC点滴

       WebForm 随着ASP.NET MVC的兴起,WebForm已成昨日黄花,但我其实还很想为WebForm说几句。 没有经历过从ASP向ASP.NET转变的同学,是很难理解当WebForm出现时,程序猿世界的欢呼雀跃的。事实上,我也是在Razor出现之后,才勉勉强强的转向MVC,因为看见<% %>这个东西就怕。阅读全文 »

2015年12月14日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

架构设计之路(七):把框架拉出来

       前面的几篇博客反响还不错,但还有一个硬伤,“说了这么多理论,能不能实践?”讲类似概念的文章不算多,但也不少了,但我一直没能从中收获太多的东西,反而更是云里雾里的糊涂了。估计这主要是两方面的原因造成的:我智商低,却爱较真!   你说得得天花乱坠,我只信一点,眼见为实,“是骡子是马,牵出来溜溜?”阅读全文 »

2015年12月9日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

架构设计之路(六):忘掉数据库

       前面写了这么多,很大程度上就是为了这一章做准备。面向对象或者领域驱动,最重要的一点就是要忘记数据库!我花了很长很长的时间,才理解了这一点,从而真正的迈向一个崭新的天地;而后,我又花了很长很长的时间,才勉强做到这一点;我希望,有一天,这将不再是一个问题,我不需要考虑这一点…… 为什么业务层这么薄 三层架构流行起来之后,我们很清楚的知道UI层负责页面交互并调用下一层,也知道阅读全文 »

2015年12月4日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十六:UDP应用——UDP版的Echo Client

       同样的,我们将UDP版的doEcho()也设计成返回bool:true表示循环继续;false表示关闭客户端。 当echo_message为“空”的时候,即输入直接回车,是一个"",用C风格来说,即时'\0',从C++来说,是const char[1],其C++风格的长度echo_message.size()为0,这时候就会发送一个“0长度”的UDP数据包。阅读全文 »

2015年11月30日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十五:UDP应用—— UDP版的Echo Server

       与TCP版的Echo Server类似,我们从Server Socket类中派生出Echo Server类。 我们依然让handEcho()返回一个bool,true表示客户端“正常”离开(这里没用“断开”这个词是因为UDP是无连接的;另外,我们这里用recvfrom()返回小于0来表示客户端其实是“非正常”的离开了,比如连接被重置。阅读全文 »

2015年11月30日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十四:UDP原理——预读MSG_PEEK

       recv()和recvfrom()的第4个参数可以调整函数行为。 因为UDP是按数据包接收的,我们在接收之前并不知道这个数据包有多大。一个策略是,我们准备足够大的应用程序缓存以免出错,但是这个“足够大”的概念是建立在我们对传送的数据事先有了解的情况下,比如是我们自己设计服务器端和客户端并且制定应用层协议阅读全文 »

2015年11月30日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十三:UDP原理——“有连接”的UDP

       虽然UDP是无连接的,但是也可以通过调用connect()将本地的UDP socket FD与一个远程的UDP socket FD连接起来——只需要指定这个远程sockFD的地址,假设这个地址是sockaddr_in remoteSockAddr,代码如下:... 建立连接后的UDP RecvQ就不会将非来自remoteSockAddr的数据包收入。阅读全文 »

2015年11月26日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十二:UDP原理——UDP的系统缓存队列

       UDP的系统缓存队列与TCP的相比,有两点显著的不同: 1、UDP没有SendQ。UDP的数据包不会被处理,通过调用sendto()(或者在connect()之后也可以调用send())将数据直接发送。 2、UDP的数据在缓存队列中是有边缘保证的,也就是说,数据包是有大小的。阅读全文 »

2015年11月19日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十一:UDP原理——设计UDP client类

       UDP的客户端看起来几乎就是服务器端的翻版,甚至比服务器端更简单——因为不需要bind()本机地址:... 在最初设计这个类的时候,我曾经考虑过安排一个服务器地址的私有数据成员,并且在构造函数里面指定服务器的地址。但是,后来我觉得使用“目的地”比“服务器”更加能体现出UDP无连接的本质特点。阅读全文 »

2015年11月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

TCP/UDP网络编程入门教程之二十:UDP原理——设计UDP server类

       人们通常用电话连线来说明TCP协议,而UDP协议,则常常用邮递来做比喻。与TCP有连接的信息传输方式不同,UDP协议被认为是对底层IP协议简单的扩展:协议并不保证每个数据包都会到达目的地,也不保证到达的顺序,而仅仅就是“尽力”的发送每一个数据包。我在这篇教程中有时候使用“数据包”有时候使用“数据报”,广义的说,这两个词意思类似阅读全文 »

2015年11月10日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

国外从业者预测的软件开发六大发展趋势

       现在对于2016年软件开发的发展预测或许还有点早。但是大数据的飞速发展已经让我们的心情难以平复,以下是个人预测的2016年将会出现的6大软件开发发展趋势,仅供参考。趋势一:容器将会统治世界 Docker将会继续蓬勃发展,会增加更多的安全特性、添加更多的管理形式,以致于你不得不延长容器的下拉菜单。阅读全文 »

2015年11月6日
作者:鸡啄米 分类:软件开发 浏览: 评论:0