由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 我看这个所谓的铁道部售票系统
相关主题
如果要做一个铁路售票网站Node做大系统better than Java, .NET
很多东东要是我来设计,会很不一样异步的话,所有语言都有自己的环境
魏老师最大的错误假设给点学习建议吧
吵,吵个屁。铁路售票明显该上rest api关于web server对于web service的支持
没有问题要魏老师来解决什么问题?What it takes to run Stack Overflow
Node之父改行golang了想学java开发
魏老师,人家app server没问题,你干嘛要改造?问个jvm的题server stop the world
魏老师,没有问题你干嘛要硬生生变出问题来?zhaoce你要做skynet的话最好跟我学
相关话题的讨论汇总
话题: 系统话题: server话题: 然后话题: 铁道部话题: ibm
进入Programming版参与讨论
1 (共1页)
z****e
发帖数: 54598
1
如果我拿到这个需求
首先第一步,肯定不会马上提出什么解决方案,开始各种计算
那是书呆子的行为,当年我刚毕业时候,公司安排去拓展
有一个项目就是,给一组一堆任务,然后每一个任务都有不同权重
有些人拿到任务,不经过讨论,马上就着手阅读题目,然后开始按照题目要求做
这么做的问题就在于,有些任务权重低,但是任务本身消耗很大
所以有些人努力了半天,其实最后给组里面做出的是负贡献
鄙人其实也是其中之一,这个也没什么好否认的
但是从那以后,我做任何事情之前,都会 我慢
先别急,看清楚形势,分析后,决定优先顺序之后,再做不迟
上来就吭哧吭哧一顿做的,用当时教练的话说,都是书呆子
做事情要有的放矢,人的精力是有限的
好,那首先有了需求,然后先尽可能多地收集各种资料
其他资料也许你不会想到,但是铁道部现在有什么系统
尤其是现在有什么it系统,你总会想到吧?你不会天真地认为
这个需求就是从无到有写一个无依赖无关联的系统吧?
铁道部好歹也算是发展了几十年了,内部会没有一个正在运作的it系统?
其他不敢说,但是拍脑袋想,也能想到,里面肯定会有database
会有app server,还会有一些web server,等等等等
天朝现在也不是满清了,闭关锁国,没见过洋人,以为人家不喝茶大便拉不出来
ibm等外企什么那些consultant在天朝政府里面的关系好着呢
所以线路,车次,票务这些数据,肯定都存在database里面
然后外围有一堆的系统围绕着这些db在运作
如果不出意外,多半内部会有一个erp系统,erp这个东西,最初的定义
就是,共享数据库的一堆系统,这个定义我背得很熟,因为这个方式
本身,也是eai最基本的模式之一,这个要是做不到,ibm这些外企绝不答应
所以到了这一步,就会觉得什么内存有向图的设计是有些滑稽的
你把数据全部读入内存,那现有的系统怎么办?全部改成共享内存的系统?
然后一台破server机打遍天下?
作为局外人,这些信息其实可以通过一些新闻找到,详细可以参考swjtuer的贴
从新闻中看,是sybase做的布局,db,app server这些都是sybase提供的
这是核心系统,下一步,找关联系统
关联系统有哪些呢?
银行,你网络交易总得找个买单的机构吧?
身份证信息存储中心,车票是实名制哦,你要验证身份证信息输入是否合法
这两个是最基本的,可能还会有其它的,比如小菊花提出的ca机构
就不一一展开了,减少篇幅,这种东西越写越多
那现在需求就是,在这个基础之上,铁道部想做一个网络售票的网站
对吧?
该怎么办?
收集完现有系统信息之后,第二步,做项目分析报告
第一步就是定义scope, time, cost,第四个其实是quality,没有人想改变
这三个如果不明确,项目做了也是白做,做得越多,赔得越多
第一份工作,老大就告诉我,不要急着写代码,想好了再做
写代码是体力活,是很简单的事,想清楚再做,否则做了都白做
因为客户会改,而当客户要改的时候
就拿出这三点来跟客户说,你看,这个需求已经确认了
如果你要改,那请你牺牲剩下的time或者cost其中之一,否则没有办法保证qulity
当然说的时候要有技巧,一般的说法都是,行,好,不过现在时间比较紧
我们把这个需求放在下一期,要给测试留出足够的时间,保证生产不出事故
领导一般都会同意,因为出了事故,领导要下台,p民无所谓
scope简单说,就是制作一个能够负担得起全国人民买车票的这么一个网站
完了
time,当时离春运只有几个月不到的时间,而春运不可能被推迟,宽裕地说,半年吧
cost,这个其实用不了多少,不过完全可以开口要,铁老大有钱
你做这种项目不向上面要点钱你傻逼啊?你要你老板喝西北风啊?
全国人民要的是一个稳定的可以买票的系统,不是一个山寨钓丝手机
你有了金钱的刺激,本身也会更努力地干活,努力把活做好
所以你要钱,本身是向全国人民以一种负责任的态度在做事
铁老大在乎的是稳定的售票网站,全国人民在乎的是买到票
你做这个项目是为了赚钱,各取所需,不要哪壶不开提哪壶
虽说铁道部不选ibm那一套是因为ibm太贵,但是ibm那一套是贵得离谱了
一个license一年就要几十万,你哪怕只能拿到ibm报价的十分之一
也足够你发达了,而且拿出去也超有得说,我当年给铁道部做过项目
解决了十几亿人民的网络购票问题,还干掉了ibm
这个用时兴的话说,难道不是吊爆了?
好了,分析完了,怎么做?
其实很简单,现有的app server是sybase那一套
不要大改,大改了关联系统肯定出问题,其他人也不会让你改
所以最简单的方式,做一个wrapper,对于这些app server来说
暴露出一个web service的接口,能够实现票购买的操作就行了
其次第二步,做一个proxy,代理身份证验证,这个应该是政府机关的数据
再做一个proxy,代理银行交易,当然银行可能不只一家,会有很多家,越多越好
这两个加上售票的系统的接口,有了这三个东西之后
问题解决了大半,有必要的话,可以测试一下这三个能够承受多大的并发数
无非一个数据,然后预测一下全国人民有多大的并发量
估计是要远远超过这个数字
然后下一步,做web server,随便你用什么web server
php就php,jsp就jsp,nodejs就nodejs,ror, django,随便搞
然后堆web server,每一个web server接收请求之后,到那几个wrappers里面去操作
如果并发量超过系统负载,那就做成异步的,每一个web server找一个db做cache
存订单,然后汇总到app server那一层,做batch处理
处理完成之后发送一个email,搞定
其实也没啥很fancy的东西,无非那点东西
然后做点外围的处理,什么容灾备份,什么电信专线介入,诸如此类
中国电信常年提供这种环境,都是直接找铁老大花钱就搞定的事
何苦自己吭哧吭哧琢磨半天hot standby要怎么实现?
最后就可以交差啦,简单粗暴就搞定啦
你说斤斤计较半天是1ms还是2ms,1w还是2w,干嘛呢?
然后搞定后,刘志军去跟杨冥快活的时候
没准还送你一个新红楼十二钗之一让你共乐乐一把
然后你以后拿出去跟人也有的说,我解决过十几亿人民的网络购票问题
然后爱怎么吹就怎么吹了,是吧?你说你用了storm,有人敢否定你么?
吹一辈子都没啥问题,爱干嘛干嘛去
所以有人说,这种事都是政治问题,有些人就是搞不明白
好好的路不走,非要过一个独木桥,摔得半死还不如人家跑得快
我原则上同意这个看法
而且这个看法,从project management角度说
就是一个project manager,要弄明白客户的政治
这个是写入教科书的内容,阿三老师做的ppt上面就教学生
当你做pm的时候,开始做项目之前,要弄清楚政治关系,培养自己的ally
争取获得对方说话有份量的人的认可
it是技术挂帅?
谁说的?
i***h
发帖数: 12655
2
这个很有道理
站得高看得远
f*******t
发帖数: 7549
3
这个说出我心里话了。拿到大项目,首先想着一个transaction 100ns还是10ms,数据
库是有锁还是无锁,意淫出个所谓既原创又牛逼的设计,这种思维模式是当一辈子码工
45岁被裁的节奏。抠来抠去,那些细节无非是茴字的四种写法,跟刷面试题没本质区别
。所以我一早就在另一个帖子里回复,魏老师也就new grad+2年经验的水平,面
architect上他那套说辞,直接悲剧无悬念。IT这行,大家要尽量避免干十年一直重复
做一年的活,要学会think big。
b*******s
发帖数: 5216
4
排除你对魏老师的评价,讲得是对的

【在 f*******t 的大作中提到】
: 这个说出我心里话了。拿到大项目,首先想着一个transaction 100ns还是10ms,数据
: 库是有锁还是无锁,意淫出个所谓既原创又牛逼的设计,这种思维模式是当一辈子码工
: 45岁被裁的节奏。抠来抠去,那些细节无非是茴字的四种写法,跟刷面试题没本质区别
: 。所以我一早就在另一个帖子里回复,魏老师也就new grad+2年经验的水平,面
: architect上他那套说辞,直接悲剧无悬念。IT这行,大家要尽量避免干十年一直重复
: 做一年的活,要学会think big。

T********i
发帖数: 2416
5
不知道老兄哪里高就?我想膜拜一下。

【在 f*******t 的大作中提到】
: 这个说出我心里话了。拿到大项目,首先想着一个transaction 100ns还是10ms,数据
: 库是有锁还是无锁,意淫出个所谓既原创又牛逼的设计,这种思维模式是当一辈子码工
: 45岁被裁的节奏。抠来抠去,那些细节无非是茴字的四种写法,跟刷面试题没本质区别
: 。所以我一早就在另一个帖子里回复,魏老师也就new grad+2年经验的水平,面
: architect上他那套说辞,直接悲剧无悬念。IT这行,大家要尽量避免干十年一直重复
: 做一年的活,要学会think big。

b*******s
发帖数: 5216
6
估计是系统集成那个方向的

【在 T********i 的大作中提到】
: 不知道老兄哪里高就?我想膜拜一下。
l*****9
发帖数: 9501
7
这些的波的,适合去WORKING版,葵版就是讲技术的。
x****d
发帖数: 1766
8
魏老师跟大家玩了几天,不能因为魏老师在本版的行为艺术否定魏老师的技术和能力。
没有直接因果关系。我对魏老师还是有敬佩之心的。

【在 f*******t 的大作中提到】
: 这个说出我心里话了。拿到大项目,首先想着一个transaction 100ns还是10ms,数据
: 库是有锁还是无锁,意淫出个所谓既原创又牛逼的设计,这种思维模式是当一辈子码工
: 45岁被裁的节奏。抠来抠去,那些细节无非是茴字的四种写法,跟刷面试题没本质区别
: 。所以我一早就在另一个帖子里回复,魏老师也就new grad+2年经验的水平,面
: architect上他那套说辞,直接悲剧无悬念。IT这行,大家要尽量避免干十年一直重复
: 做一年的活,要学会think big。

T*U
发帖数: 22634
9
高端数据库现在是全部在内存,读不碰硬盘,写才去硬盘

【在 z****e 的大作中提到】
: 如果我拿到这个需求
: 首先第一步,肯定不会马上提出什么解决方案,开始各种计算
: 那是书呆子的行为,当年我刚毕业时候,公司安排去拓展
: 有一个项目就是,给一组一堆任务,然后每一个任务都有不同权重
: 有些人拿到任务,不经过讨论,马上就着手阅读题目,然后开始按照题目要求做
: 这么做的问题就在于,有些任务权重低,但是任务本身消耗很大
: 所以有些人努力了半天,其实最后给组里面做出的是负贡献
: 鄙人其实也是其中之一,这个也没什么好否认的
: 但是从那以后,我做任何事情之前,都会 我慢
: 先别急,看清楚形势,分析后,决定优先顺序之后,再做不迟

l*****9
发帖数: 9501
10
春运30亿人次客流量,单张售票显然不能进数据库

【在 T*U 的大作中提到】
: 高端数据库现在是全部在内存,读不碰硬盘,写才去硬盘
u****q
发帖数: 24345
11
1 (共1页)
进入Programming版参与讨论
相关主题
zhaoce你要做skynet的话最好跟我学没有问题要魏老师来解决什么问题?
有1个加权有向图,要把所有节点走一遍,找最优路径,这是什么算法?Node之父改行golang了
一个有向图问题魏老师,人家app server没问题,你干嘛要改造?
最新的MS面试题 (转载)魏老师,没有问题你干嘛要硬生生变出问题来?
如果要做一个铁路售票网站Node做大系统better than Java, .NET
很多东东要是我来设计,会很不一样异步的话,所有语言都有自己的环境
魏老师最大的错误假设给点学习建议吧
吵,吵个屁。铁路售票明显该上rest api关于web server对于web service的支持
相关话题的讨论汇总
话题: 系统话题: server话题: 然后话题: 铁道部话题: ibm