- 浏览: 25411 次
- 性别:
- 来自: 深圳
最新评论
文章列表
转载一篇博客,深以为然。技术只是一个工具并不能让你马上称为生产力。更重要的是掌握工具的同时并且有意识,方法论,并利用工具做正确的事。
Aaron Stannard是新创公司MarkedUp的CEO,他最近花费大量时间雇佣、评估很多不同 ...
作为软件开发人员不可避免的涉足软件过程管理,无论是管理者还是实施者都是过程参与者。当我们要向外行解释软件开发是怎么回事,通常来通过一个比方比如说建房子,这就是“隐喻”,当我们工作中遇到问题的时候,怎么深刻地正确地来理解和认识我们软件工作的本身,你潜意识里认为做开发应该这样,实际上做的事情不符合你的预想,这就是痛苦的根源。
有篇文章“软件开发不可与建筑类比”来表明一个不恰当的软件开发隐喻。 值得思考。
这与敏捷开发宣言有些神似。
那些经常用来描述软件的建筑隐喻是错误的。可悲的是,因为有了这层暗示,我们把很多重点放在了错误的地方:
力求把需求预先定义清楚,而不是接受:变化才是常态;
强调架构和 ...
说到项目中使用开源项目或第三方解决方案。决策层有时不考虑业务特点,自身熟悉程度而是排除竞争对手,凸显公司能力来选择方案。但作为具体开发实施人员是要有客观的看法和声音, 转载一下博客,深以为然。
https://yq.aliyun.com/articles/6042?&utm_campaign=sys&utm_medium=market&utm_source=edm_email&msctype=email&mscmsgid=3240116060100637134&
分别是“选”、“用”、“改”。
选:如何选择一个开源项目
【聚焦是否满足业务】
...
时至今日,短信验证提醒已经司空见惯。一个小例子,记录一下公司集成短信的过程,其实这些demo一般短信服务商都会提供。作为一个常见应用例子,记之。
package com.jq.test;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.UR ...
见识有高低,知识无贵贱。转载一下别人的博客,朝花夕拾之意。
1、类和对象
Java万物皆是对象,旨在将世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。
对象的描述是通过特征和行为来描述的,特征 ...
工作十几年来,被人管过也管过人,接触过不同的项目类型,也和不同的客户打过交道。 工作不外是“人”和“事”。有人的地方,就有事情,有事情的地方,就有管理。人,事都在变化,管理有需因人而定,因事而变。结果最终有成,有败。也曾学过一段管理理论,但真遇到事情,理论只能增加自己的信心和开拓自己的思维。运用之妙,存乎一心,和行军打仗一样。最后化为自己的经验和直觉。 理论隐约只记得几个词了,重新摘记之。沙场百战后,相忘于江湖。
内容
1、 项目范围管理
是为了实现项目的目标,对项目的工作内容进行控制的管理过程。它包括范围的界定,范围的规划,范围的调整等。
2、 项目时间管理
是为了确保项目最终的按时完成的一 ...
说起软件设计其实是一个高度,深邃的事情。能登高一览纵山小,俯仰天地那是大师的境界。我等则在路上。。。
一个复杂的设计,是由具体的类和对象组成。先有类,才有类与类之间的关系。
GRASP就是如何设计指导我们设计好类的原则。
1.Information Expert (信息专家)
信息专家模式是面向对象设计的最基本原则,是我们平时使用最多,应该跟我们的思想融为一体的原则。也就是说,我们设计对象(类)的时候,如果某个类拥有完成某个职责所需要的所有信息,那么这个职责就应该分配给这个类来实现。这时,这个类就是相对于这个职责的信息专家。
2.Creator (创造者)
实际应用中,符合下列任一条件的时候 ...
控制圈复杂度的10种重构技术总结
- 博客分类:
- 代码管理
一、Composing Methods(重新组织你的函数)
1.Extract Method(提炼函数)
分为不同的step步骤进行处理,主干逻辑方法控制在7个以内
将代码放进一个独立函数中,并让函数名称解释该函数的用途
2.Substitute Algorithm( ...
公司需要和道闸对接,道闸有个模拟客户端端定时发送数据,服务端将道闸产生的socket报文进行解析,报文里面有文案中规定好的数据含义。某种意义上讲, socket报文也是处理异构跨平台数据交换的利器。基于TCP/UDP协议,数据格式为字符串,这也跨语言平台无差别交换的原因。
扩展一下,有类似的框架Netty,可以参考MINA与Netty的对比文章:
http://ifeve.com/netty-mina-in-depth-1/
package com.jq.test;
import java.io.IOException;
import java.net.InetSocketAddress ...
接触大数据的这两年来,总是被各种琳琅满目的框架工具目不暇接。在这个大数据这个生态圈里,具体的框架工具都有自己的应用场景或不足之处,用来解决特定的问题。技术选型的时候要结合业务特点。没有包治百病,一劳永逸的方案。
1.Hadoop,大数据的鼻祖和基础。 解决存储(HDFS)和计算(MapReduce)。数据运行在磁盘上决定适合批处理任务,实时性低的场景。 NameNode和DataNode, 主从模式。
2.Storm,数据运行在内存中,适合流处理,实时性高场景,缺点不灵活,预先知道统计方式。Spout和Bolt,主从模式。
3.Spark,解决Hadoop运行速度问题,数据运行在内存中。但实时 ...
自己接触webservice已经有六年了,是处理异构跨平台数据交换的利器。具体概念不详细交代了。有很多关于这方面的博客。如:http://blog.sina.com.cn/s/blog_493a845501012566.html
这里主要谈的是自己的经历和感受。
1.协议结构和格式定义:
SOAP + xml 简单对象访问协议, 有SOAP头, 可采用XSD或Bean注解的方式来定义数据
HTTP方法+ xml或json, 其实可以看做有HTTP头,对传输数据格式要求不严格,比如元素是否必须,值,类型,频率等远没有SOAP要求那么高。
2.测试工具:
SOAPUI
java -jar rest ...
阿里云上运行MapReduce例子
- 博客分类:
- 大数据云计算
接着上次博客记录, 例子虽然可以在本地运行,如果将写好的代码在阿里云上运行。
基本步骤如下:
1.将写好的代码导出成jar文件,代码里面的字段名用小写,ODPS都转为小写,用大写会报错找不到相应的字段,在后面执行才知道这个问题。
EtlTools.java-->Export--->Jar file-->name-mr.jar
2.从Eclipse workspace拷贝到D:\odpscmd_public\bin,路径不能有中文,否则后面会报错找不到相应的jar包
3.数据准备,建表
CREATE TABLE etl_in (idCard STRING, name STR ...
公司提了一个要求,要基于阿里云的ODPS实现一个简单的数据ETL Demo。
基本需求如下:多条身份证,姓名,来源部门信息遵循两条规则, 有权威部门则采用权威部门数据,无权威部门则采用出现次数多权重数据。
实现过程如下:
1.去阿里云申请accessID, accessKey
2.下载SDK开发工具
3.下载ODPS Eclipse插件并集成
4.仿造WordCount例子实现需求
具体表结构及代码
project=example_project
table=etl_in
columns=idcard:STRING,name:STRING,dept:STRING
522635****011 ...
之前在设计Restful webservice时安全问题,一直在找一个合适的方案。常用的HTTP方法POST,GET,PUT,DELETE对应着资源的CRUD, Create, Retrieve(注意不是Read,经过一个美国客户的纠正), Update,Delete, 这是Restful初始的设计思想。
参数传输类型有xml,json,现在流行的是简单快速的json类型, UTF-8格式。为了安全,这里就要来一次“反模式”, 所有的请求方法都为POST, 将传输的内容可以用加密算法:
例如:
AES( “{ "parkIndex":"4956489561" ...
屈指一算,工作十四年了。做了三年网络,十一年开发管理。平常很少有时间和情绪来梳理这么多年来知识体系,一半因为自己的知识量,境界,阅历有关,以为写作其实是个很神圣的东西,没有积累是很难全貌的去把握知识,一半是因为个人性格,抱着只问耕耘,不问收获的人生态度。今天有兴致梳理了一下自己的知识结构。
一、基础知识
二、JVM
三、设计模式与原则
四、应用框架SSH
五、SOA
六、存储(sql, nosql)
七、搜索
八、大数据,云计算
九、移动端开发
十、软件工程方法
十一、系统架构
十二、性能
人类一思考,上帝就发笑。 每个人存在总有自己的三观。 我自己的开发哲学或架构观基本如下: 重基础,思架构, ...