《软件工程》上课精华分享
1 不同阶段做不同的设计,求学应依照现阶段经验。 2 eg.小孩刚出生吃奶,大一点了吃稀饭,再大一点了吃米饭。 3 我们软件工程的大作业也如此,应依现阶段经验,做简单大体的设计,其过程如下: 4 在设计阶段要进行“技术验证”,防止因难度过高而停滞。
发展后劲:可选听设计模式与智能算法。 招聘注重: 项目经验、项目角色、项目遇到的问题。 界面设计的黄金法则: 1.用户操纵控制。 2.减少用户的记忆负担。 eg.SqlServer安装的最后,会总结出前面的已选的选项; 不断进展方式揭示信息:eg.有10项功能,常用的四项,按某个键可以实现精简版或完整版,或者设置高级选项隐藏不常用的。 3.保持界面一致。
《设计模式》:使用解决方案 ,而不是重复的劳动。
【单例模式】 某个对象要求唯一。 eg.某报警器有多种声音,它想不出现混乱,在物理报警器与虚拟报警器(代码,类)需要设置唯一。 如系统不同事务都要写入日志,可以写个日志类。要点:1.私有构造函数;2.getInstance()通过控制次数调用。 【工厂方法模式】可选择,从几种实现中选一种。 eg.要判断日志是要打印到文件,还是打印到屏幕。 起初:通过 class A{ main(){调用类B} } class B{ public void log(){ if()...else... -->"控制耦合",不好用 } } 接着:通过 "数据耦合",降低耦合程度
20150601
收集->抽取->清洗->规范化->统计->报告 用大数据【判断房价升or降】 一般用“顺序批处理风格” 管道过滤器模式中,队列可当管道用 缓冲->解码->美化->大小->显示 【视频播放器】 不断产生和消耗数据 用5个线程同时进行(数据流不是前->后,而是同时进行) 提高复用性->技术:面向服务的计算 eg.百度地图、天气预报 [双方调用多,松散度大,独立性高,容易维护] 同步:TCP 可靠性高、效率低 异步:UDP 可靠性低、效率高 事务处理:指要么做要么不做 eg.银行存钱,存款相应增加,不可能没有做完 分层优点:影响不会太大 瘦客户端:服务器压力大 胖客户端:业务复杂,不好维护 C/S(页面是固定的,只需要下载数据)效率比B/S(与网络快慢有关)高 游戏一般用C/S,因为有很多特效 控制器:DOS界面的数字选项 switch(XX){ …… } 表: op function 1 f1 2 f2 3 f3
好处:1.界面与业务分离,松散耦合;
2.业务流程可配置。
点对点(P2P) eg.迅雷(多个服务端同时下载)、QQ 用户到迅雷服务器(只保存每个用户的文件,不保存源,汇总所有用 户文件)搜索文件 ->创建TCP连接,在拥有该文件的机器上下载(多点下载) ->每个节点既是客户端又是服务器 迅雷会员:CDN 用户传文件时偷偷保存副本,保存在你家附近的服务器,可直接从电 信机房下载。 面向服务的体系结构(SOA) 两台机器,用文本交互。 eg.在数据库中使用别台机器生成的sql语句(协议:ODBC、JDBC、 RPC),网页交互(HTTP) 软件复用提升。云计算一定会用到。
20150518
1.鼓动 2.培训 3.细化 4.沟通(任务安排) 5.承担(勇气) 6.检查 要顺利执行这六点,得先建立好纪律。——团队总结
1)记原理胜于记概念,细节实现交给百度。更多时间拿来构思和优化。
2)考试考的是知识,上班考察的是个人素质(eg.工作方式,敢承担,愿意为别人服务……)
3)独门绝技是不存在的,你先学会一门技能不代表别人跟不上你。
4)要更加注重培养技能以外的素质,这些是别人学不了的。
——《软件工程》总结
20150617