数据库
(1)也不知道是不是bug:
- 环境:Windows 10 64bit 教育版,VS 2017 community,SQL Server 2014,使用的ORM是开源的PetaPoco.cs
- 问题描述:一个sql语句,开头第一行是注释(--开头的)第二行开始是正式的查询语句,在DBMS中直接执行没问题,但通过C#传参却执行错误,报错是说执行所返回的对象实体定义的类不正确。但是只要不把注释放到第一行就没有问题,而且还要和有效语句的单词空一个格才开始写注释,否则也会有上述异常。
(2)其他
- 不同于以前写sql语句,现在由于比较差,为了可读性都得适当分行,仅仅是select出来的属性也要分行(因为会给属性起别名,所以一般一个属性一行)这样就要注意加属性的时候,记得加上
,
,属性是用,
隔开的。
雏鹰计划第一讲
by 尹老师 & 戴院长 & 文静姐
(1)沟通成本
- 课间文静姐组织了一个小游戏,简单来说规则是5个人只能通过面部表情(即不能发出声音,不能有肢体动作)去传递一个数字,但是事先只跟我们说是数字,也没具体说别的,然后给我们2分钟的规则交流时间。
- 当时我们组默认就是整数,采用的决策时一位一位数字确认,这样可以用诸如眨眼次数来表达一位数字。然而没想到的是数字可以是浮点数,也可以是复数!
- 这个游戏旨在让我们知道,沟通一定要有规则,规则一定要全,一定要高效,一定是要双方都清楚的。同时其实一个团队太多人了沟通成本就高,沟通就需要时间,而且信息在传递过程中可能会变!
(2)编程语言史
- 世界上第一程序员是女的!英国著名诗人拜伦的女儿Ada Lovelace曾设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。
- 第一门高级语言是Fortran(面向过程),全称公式自动翻译器
- 第一个结构化语言ALGOL
- 最简单的语言——BASIC,之前的语言都是为了解决某个问题,而这门语言是系统化的,所以简单
- K&R与C语言:当时政府需要一个多任务多用户的OS,然后他们无聊,就写写系统吧,写UNIX的时候,发现fortran的缺点太麻烦了,就顺便写了C语言,再写出了unix。
- 最复杂的编程语言C++
- 安德斯·海尔斯伯格,Borland Turbo Pascal编译器的主要作者。进入微软公司后,先后主持了Visual J++、.Net, C# 和 TypeScript。
- eclipse图标——日食
- facebook——可以说救了php,因为php特别奇怪,就连发明者也承认是东拼西凑出来的,也不知道哪是头。若不是facebook用,估计这么语言就淹没了。
- JSP与ASP,这算是java第一次“抄”微软。
- 苹果的反省——Ob-C设计奇差,编译语言和脚本语言的结合搞到四不像。其swift准确来说也是靠苹果的名气才流行起来的。
- 苹果对用户友好,对开发者不友好。举例子:不能热更新。王者荣耀一个月给苹果的流水60亿,还有12306每天都更新数据,如果真的完全不能热更新,就中国仅仅这两个app不跟苹果玩,说不定苹果就崩了。
- 大将成才——Python(嗯,真的好)
- 新生儿——Kotlin,为了避免甲骨文烦人的官司(甲骨文为了钱什么都做得出,竟然大费周章地分析安卓的源码找到了8行调用java库api的语句去告谷歌),所以谷歌就为了安卓写了一门语言,完全兼容java。
- 天生残疾——JavaScript,却被给予厚望,在nodejs框架的发展下,担起一统天下的角色。ECMAScript规范和微软的TypeScript的插一杠子。让这个语言好像长得健全。
- 当前的香饽饽——H5
- 收费的东西才是最便宜的,开源的东西才是最贵的。(从维护的角度看。
(3)关于敏捷开发
- 产品经理、测试、研发应当三足鼎立。
- 快(敏捷)、有序(可控)、有节奏(周期)、持续改进、分而治之(3个月减肥vs明天跑个10km,后者才是可控的)——SCRUM(敏捷开发)
- 完成比完美更重要
- 四种会议:需求审查会议、每日站立会议(不解决问题,不相关的人不能发言)、演示会议(不是批斗会议)、总结会议(发散思维)
- 向迭代中添加需求——SCRUM杀手
- 燃尽图、甘特图
- 关于指标:KPI,OKR,前者是基于你有问题我要监管你,后者是相信你促进你
(4)框架基础引言
- 测试是证明程序是不好的,而不是证明程序是对的。
-
- MySQL+tomcat, SQL Server+IIS
- 内存超过60%那就应该加服务器了。
- 一个http请求封装好后在OS里大概占2M。
- 分布式问题:数据同步、某服务器宕机了、一个域名分服务器(副本均衡、负载均衡)
- CDN:静态的东西放这里,不用处理逻辑,例如logo之类的,这样就减轻了后台服务器的负担。
- 缓存服务器,可以用来解决用户每次登陆请求不同服务器的问题。但要注意更新缓存。
- 读写数据库需要读写硬盘!会慢,因此尽量不要频繁不必要的操作数据库,如:for循环里查sql大忌,因为查数据库是需要时间的。
- 异地备份,读写分离
模块化、微服务 - 秒杀系统:平时没人访问,但是某时间瞬间大量访问:消息队列,把流量放到一个池里。
- NoSQL,not only SQL。并发量特别大。
- 23种设计模式,如果做后台工作两三年都不知道的话,就没什么用了。
- 一个函数不要超过一屏,大概是30行。
2017-07-17 Monday