笔记

每一个项目的终极目标都是产品,做项目越做越累,只有走产品化的路才是走出低谷的唯一办法

1.不要接不熟悉的单子
不熟悉的单子,由于很多东西要从零去研究,不管是行业经验,还是代码,这些都是很高的成本。最终导致所报的价格与实际产生的费用相差很大。导致亏本。
2.不要接需求量大的单子
需求越多,你越是hold不住,最终往往导致了项目失败。
3.不接需求不明确的单子,虽然有些单子是你熟悉的行业,但是由于老板自己对业务的清晰,对方向的不明确,
很多时候只是请外包放帮他理清他的项目,到真正付钱的时候拖拖沓沓的,所以这类单子宁愿不做。
4.做同行的生意
比直接做终端客户的生意靠谱。因为同行一般都是外包公司,对于需求理解的理解与沟通会比直接的终端客户好沟通,而且一般这类客户手头上都有单子了,只是要找个合适的团队或者产品来
帮忙吃下单子,如果你手头上刚好有他需要的产品源码或者现成的业务,这个时候成交的几率很大,往往价钱都还会谈的比较不错(我们无穷大软件就是从这条路跳出了外包圈子)
5.用人方面不要因小失大。
这个话怎么理解呢,这个一般是用在公司内部用人的身上,一般外包公司为了省人力,会请技术很一般的人,价钱自然会要便宜一些,有时候还会请好几个那种技术一般的人,我们无穷大软件早期
也是在这个上面犯错,导致一个PC客户端的项目延期交付 ,给公司带来了无可弥补的损失。后来痛定思痛,把低技术级别的全部不要,我们公司小不适合养闲人,只请1-2个技术大牛,甚至兼职就ok。项目最后顺利交付。
6.在找客户方面,用好现有的工具和渠道。
我们本身是互联网公司,对于互联网的推广手段,找客户手段比一般公司都要来的精通,但是往往有很多公司放着高科技不用,非得学别的公司堆人力,比如销售,请一堆打电话或者QQ营销的人,其实用处很有限,浪费了大量公司资源用在这个上面,还不如利用好现有的资源与技术手段来的高效。

大型网站架构系列:20本技术书籍推荐
分享大纲
大型网站架构系列
分布式系统系列
BAT技术文学系列
架构设计系列
本次分享总结

一、大型网站架构系列
第一本:《大型网站技术架构:核心原理与案例分析》

这是本算是国内大型网站架构的经典之作,由阿里人李智慧创作,听名字就知道本书很有智慧。主要从大型网站架构的特点,架构目标(高性能,高可用,可伸缩等)基本理论讲起,并介绍了几个很有特色的案例。

之前群内分享的大型网站架构系列的基础理论大部分出自此书。

第二本:《大型网站系统与Java中间件实践》

同样出自阿里的技术牛人。此书对分布式系统的演进做了较好的介绍。对常用中间件(服务框架,数据访问层,消息中间件)做了比较深入的讲解。(原理到实践都有了)

第三本:《大型分布式网站架构设计与实践》,很抱歉本书也出自阿里系。

对面向服务的架构,分布式基础设施(缓存,持久化,消息系统,搜索引擎(lucence,solr)),互联网安全架构,系统稳定性,数据分析等做了较好的讲解。

第四本:《Web信息架构——设计大型网站》

可以较系统的建立网站信息架构设计的思想。对思考如何设计一个大型网站比较有帮助。

信息架构,注意这几个词所涉及的知识。

第五本:《高性能网站建设》,对web前端架构做了非常好的讲解。

注意此处的前端不只是 JS,CSS,HTML,是指业务逻辑层之前的部分。包括缓存,DNS等。

第六本:《实用负载均衡技术:网站性能优化攻略》,本书较详细的介绍了负载均衡,缓存代理等知识,对系统了解负载均衡技术有帮助。
第七本:《高性能电子商务平台构建:架构、设计与开发》,本书可以作为功能架构参考,因为他讲的是国内一个开源商城的架构。一方面作者可能是为了推广他的开源商城,因此建议初学者或者想了解此开源系统的人学习。不建议所有人学习。

第八本《高性能网站构建实战》,建议运维人员可以参考。里面介绍了LVS+KeepAlived实现高可用集群,高性能负载均衡器HAProxy,经久不衰的Squid,高性能缓存服务器Varnish,Ngnix等。里面有大量的安装脚本,因此建议运维或想了解如何部署的参考学习。

二、分布式系统系列
第一本:《从Paxos到Zookeeper:分布式一致性原理与实践》,这一本是Leader-us老师推荐的。对于了解分布式和Zookeeper很有帮助。内容有一致性协议,2PC,3PC,Paxos算法,Paxos的工程实践,Zookeeper的安装使用, ZooKeeper的典型应用场景等。本书也出自阿里系。

第二本:《ZeroC Ice权威指南》,作者是我们群内的S级资深架构师Leader-us老师所著。

对于学习Zeroc Ice很有帮助。Zeroc Ice是与dubbo类似的一套框架。可以实现RPC和服务治理。

关于更多ZeroC Ice知识,可以咨询Leader-us。

第三本:《Kubernetes权威指南:从Docker到Kubernetes实践全接触》是介绍Docker和Kubernetes比较不错的一本书。作者也有我们的Leader-us老师。

第四本:《大规模分布式存储系统:原理解析与架构实战》,对了解分布式存储有一定的帮助。

从单机存储到分布式存储,事务,并发控制等。对常用的分布式存储系统,键值系统,表格系统,分布式数据库等有较好介绍。理论和实践都有,如果自己没实际去思考去做,都可以归为理论。

分布式系统,大数据方面了这次就不介绍了。感兴趣的可以群内咨询。

三、BAT技术系列
推荐三本技术文学类书籍。第一本是《淘宝技术这十年》,第二本是《京东技术解密》,第三本是《华为研发》

第一本:《淘宝技术这十年》群内有电子版,个人看了至少三遍以上。生动形象的介绍了淘宝从小到大的技术发展历程。对思考技术发展有较好的帮助

第二本:《京东技术解密》,可以作为参考吧,本人买了一本,但还没详细看。总体来看,《淘宝技术这十年》质量和内容上更好一些。

第三本《华为研发》本人几年前看的是第一版,现在又第二版了。此书对华为技术的发展和管理变革有一定了解,从而指导自己对技术管理进行一些改进。

小插曲:谈一下技术和管理在个人发展中的看法。

人工作有十年了,做过几年技术也做过几年管理。在个人的经历中,对技术和管理有一些不同的看法。

首先,做几年技术后发现希望做管理,做管理后发现想做技术。经过思考发现是自己对技术和管理认识不足,知识掌握不对。

比如技术如果不能提高到架构师级别,就只能code,这样一年一年薪资不涨也基本看到了尽头。

因此做技术必须要做到架构师级别。(可能话有点慢),但是个人最近的感悟。只有做到架构级别,从一定的高度思考技术问题,才能不会被淘汰。

Leader-us<springcomingagain@qq.com> 20:18:01

专注技术,同时培养技术派的领导能力,经验越丰富,越需要在IT圈里培养知名度,参与开源或者很多技术获得

因此,我做管理后,又转到了技术。到现在基本了解如何去做一个架构师了。

到这个时候,发现应该去做管理。

呵呵~~因为个人的发展模式是技术+管理的模式发展。以下是架构,管理方面成长的知识参考。

架构方面:面向对象,设计模式,架构模式,分布式系统,业务架构(常用系统架构),具体技术广度和深度等;

管理方面:项目管理(PMP,PRINCE2),敏捷管理,流程规范(CMMI等),通用管理知识等。

四、架构设计系列
第一本:《研磨设计模式》,这本书详细对GOF设计模式进行了讲解。

设计模式讲的比较细致,透彻。传说网上有研磨设计模式作者的视频。有的可以分享一下。

这是本人推荐的详细学习设计模式的第一本书。

像HeadFirst这类的就不说了。

大话设计模式也可以看下,不过入门可以,但深入研究就需要看别的了。

第二本:前几天给大家推荐过《面向对象葵花宝典》,对理解面向对象思想有一些帮助。对面向对象理解做了较到位的描述。

第三本:《.NET应用架构设计:原则、模式与实践》,不过这本是NET写的。对常用的架构模式做了介绍。比如N层设计,业务层设计,逻辑层设计,服务层设计,数据层设计等。对了解各层的设计方法有不错的帮助。本人看这本书也至少三遍以上。

比如在服务设计中有一个幂等的模式,是分布式系统中较长用到的。

第四本:《Microsoft .NET企业级应用架构设计》,与《NET应用架构设计:原则、模式与实践》想对应的是本书也是从业务层,服务层,等进行架构模式的架构。讲解的方式有点不同。虽然是NET语言的,但是对Java或其他语言都有帮助。比如:假如一个人说MVC是设计模式,你就懂的MVC是架构模式。

第五本:最后,再给大家分享一本架构的书。原因是技术积累会成为类库,类库逐渐会变为框架。一个人架构设计的能力,很大程度体现在框架设计方面。因此,最后一本书是《架构探险:从零开始写Java Web框架》

本书从零开始,介绍了如何搭建一个web框架。bean实现,aop实现等。本书个人读了两遍,感觉对设计框架和封装模块有一定的帮助。

http://blog.csdn.net/jackfrued/article/details/44921941

1、面向对象的特征有哪些方面?
2、访问修饰符public,private,protected,以及不写(默认)时的区别?
3、String 是最基本的数据类型吗?
4、float f=3.4;是否正确?
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
6、Java有没有goto?
7、int和Integer有什么区别?
8、&amp;和&amp;&amp;的区别?
9、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
12、用最有效率的方法计算2乘以8?
13、数组有没有length()方法?String有没有length()方法?
14、在Java中,如何跳出当前的多重嵌套循环?
15、构造器(constructor)是否可被重写(override)?
16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
17、是否可以继承String类?
18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
19、String和StringBuilder、StringBuffer的区别?
20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
21、描述一下JVM加载class文件的原理机制?
22、char 型变量中能不能存贮一个中文汉字,为什么?
23、抽象类(abstract class)和接口(interface)有什么异同?
24、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
25、Java 中会存在内存泄漏吗,请简单描述。
26、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?
27、阐述静态变量和实例变量的区别。
28、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?
29、如何实现对象克隆?
31、String s = new String("xyz");创建了几个字符串对象?
32、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
33、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?
34、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
35、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
36、Java 中的final关键字有哪些用法?
38、数据类型之间的转换:
39、如何实现字符串的反转及替换?
40、怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
41、日期和时间:
42、打印昨天的当前时刻。
43、比较一下Java和JavaSciprt。
44、什么时候用断言(assert)?
45、Error和Exception有什么区别?
46、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
47、Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
48、运行时异常与受检异常有何异同?
49、列出一些你常见的运行时异常?
50、阐述final、finally、finalize的区别。
51、类ExampleA继承Exception,类ExampleB继承ExampleA。
请问执行此段代码的输出是什么?
52、List、Set、Map是否继承自Collection接口?
53、阐述ArrayList、Vector、LinkedList的存储性能和特性。
54、Collection和Collections的区别?
55、List、Map、Set三个接口存取元素时,各有什么特点?
56、TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
57、Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
58、线程的sleep()方法和yield()方法有什么区别?
59、当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?
60、请说出与线程同步以及线程调度相关的方法。
61、编写多线程程序有几种实现方式?
62、synchronized关键字的用法?
63、举例说明同步和异步。
64、启动一个线程是调用run()还是start()方法?
65、什么是线程池(thread pool)?
66、线程的基本状态以及状态之间的关系?
67、简述synchronized 和java.util.concurrent.locks.Lock的异同?
68、Java中如何实现序列化,有什么意义?
69、Java中有几种类型的流?
70、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
71、如何用Java代码列出一个目录下所有的文件?
72、用Java的套接字编程实现一个多线程的回显(echo)服务器。
73、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
74、你在项目中哪些地方用到了XML?
75、阐述JDBC操作数据库的步骤。
76、Statement和PreparedStatement有什么区别?哪个性能更好?
77、使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
78、在进行数据库编程时,连接池有什么作用?
79、什么是DAO模式?
80、事务的ACID是指什么?
81、JDBC中如何进行事务处理?
82、JDBC能否处理Blob和Clob?
83、简述正则表达式及其用途。
84、Java中是如何支持正则表达式操作的?
85、获得一个类的类对象有哪些方式?
86、如何通过反射创建对象?
87、如何通过反射获取和设置对象私有字段的值?
88、如何通过反射调用对象的方法?
89、简述一下面向对象的"六原则一法则"。
90、简述一下你了解的设计模式。
91、用Java写一个单例类。
92、什么是UML?
93、UML中有哪些常用的图?
94、用Java写一个冒泡排序。
95、用Java写一个折半查找。

http://blog.csdn.net/jackfrued/article/details/44931137

96、阐述Servlet和CGI的区别?
97、Servlet接口中有哪些方法?
98、转发(forward)和重定向(redirect)的区别?
99、JSP有哪些内置对象?作用分别是什么?
100、get和post请求的区别?
101、常用的Web服务器有哪些?
102、JSP和Servlet是什么关系?
103、讲解JSP中的四种作用域。
104、如何实现JSP或Servlet的单线程模式?
105、实现会话跟踪的技术有哪些?
106、过滤器有哪些作用和用法?
107、监听器有哪些作用和用法?
108、web.xml文件中可以配置哪些内容?
109、你的项目中使用过哪些JSTL标签?
110、使用标签库有什么好处?如何自定义JSP标签?
111、说一下表达式语言(EL)的隐式对象及其作用。
112、表达式语言(EL)支持哪些运算符?
113、Java Web开发的Model 1和Model 2分别指的是什么?
114、Servlet 3中的异步处理指的是什么?
115、如何在基于Java的Web项目中实现文件上传和下载?
116、服务器收到用户提交的表单数据,到底是调用Servlet的doGet()还是doPost()方法?
117、JSP中的静态包含和动态包含有什么区别?
118、Servlet中如何获取用户提交的查询参数或表单数据?
119、Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
120、如何设置请求的编码以及响应内容的类型?
121、解释一下网络应用的模式及其特点。
122、什么是Web Service(Web服务)?
123、概念解释:SOAP、WSDL、UDDI。
124、Java规范中和Web Service相关的规范有哪些?
125、介绍一下你了解的Java领域的Web Service框架。


http://blog.csdn.net/jackfrued/article/details/44931161

126、什么是ORM?
127、持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些?
128、Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(两个线程能够共享同一个Session吗)?
129、Hibernate中Session的load和get方法的区别是什么?
130、Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分别是做什么的?有什么区别?
131、阐述Session加载实体对象的过程。
132、Query接口的list方法和iterate方法有什么区别?
133、Hibernate如何实现分页查询?
134、锁机制有什么用?简述Hibernate的悲观锁和乐观锁机制。
135、阐述实体对象的三种状态以及转换关系。
136、如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与Session关闭的矛盾是如何处理的?
137、举一个多对多关联的例子,并说明如何实现多对多关联映射。
138、谈一下你对继承映射的理解。
139、简述Hibernate常见优化策略。
140、谈一谈Hibernate的一级缓存、二级缓存和查询缓存。
141、Hibernate中DetachedCriteria类是做什么的?
142、@OneToMany注解的mappedBy属性有什么作用?
143、MyBatis中使用<code>#</code>和<code>$</code>书写占位符有什么区别?
144、解释一下MyBatis中命名空间(namespace)的作用。
145、MyBatis中的动态SQL是什么意思?
146、什么是IoC和DI?DI是如何实现的?
147、Spring中Bean的作用域有哪些?
148、解释一下什么叫AOP(面向切面编程)?
149、你是如何理解"横切关注"这个概念的?
150、你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
151、Spring中自动装配的方式有哪些?
152、Spring中如何使用注解来配置Bean?有哪些相关的注解?
153、Spring支持的事务管理类型有哪些?你在项目中使用哪种方式?
154、如何在Web项目中配置Spring的IoC容器?
155、如何在Web项目中配置Spring MVC?
156、Spring MVC的工作原理是怎样的?
157、如何在Spring IoC容器中配置数据源?
158、如何配置配置事务增强?
159、选择使用Spring框架的原因(Spring框架为企业级开发带来的好处有哪些)?
160、Spring IoC容器配置Bean的方式?
161、阐述Spring框架中Bean的生命周期?
162、依赖注入时如何注入集合属性?
163、Spring中的自动装配有哪些限制?
164、在Web项目中如何获得Spring的IoC容器?
165. 大型网站在架构上应当考虑哪些问题?
166、你用过的网站前端优化的技术有哪些?
167、你使用过的应用服务器优化技术有哪些?
168、什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
169. 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?
170. 谈一谈测试驱动开发(TDD)的好处以及你的理解。


转载自:http://www.cnblogs.com/remember-forget/p/6140166.html

 

原文地址:https://www.cnblogs.com/yangchongxing/p/8109829.html