新产品选择技术选择问题
CMIC 2014-10-22 01:21:03 最近接受了一家初创互联网公司的offer去做CTO,产品要从头开始做,所用技术可以重新选择。在现在这家公司主产品因为当时一些限制选择不太适合技术,导致后来维护起来特别累,所以有这次机会我想咨询一下大家的意见,尽量避免犯同样的错误吧。
主要技术还是基于微软平台的,这也是讨论的前提条件,但毕竟这里是.Net版块吧。说实话我现在也没定下来在微软平台上现实这个产品,虽然微软平台上的技术我最熟悉,但一点也不排斥其他平台。
首先是Web框架,Web Form和MVC,我想选MVC。我们现在公司的产品是才用Web Form,所以我对Web Form也比MVC熟悉,但越是熟悉越是觉得Web Form限制太多,比如你基本没有办法控制web control所带资源在页面上render的顺序。在这里我想知道大家认为MVC相对Web Form来说有什么重要的缺点没有,我MVC的经验只来源于我做过2-3小项目,基本没有发现什么让我不爽的地方。
前台UI的我想基于Bootstrap,但这个我非常不确定,Bootstrap也是我最近一年才开始接触的,用它做过2-3私活,从developer的角度来说我觉得用起来很舒服,最大的问题是低版本IE兼容性。因为我用Bootstrap做的项目里面都是私活,都没找UI去定制Bootstrap,不知道UI designer角度来看Bootstra怎么样。还有就是Bootstrap定制性怎么样,定制的工作量有多大,Bootstrap有没有比较大的缺点等。
再有就是数据访问技术选择,现在产品中用过Linq for SQL,Linq for Entity,他们的问题不够灵活,输出的SQL也不好控制。这些问题一般场景不会有啥问题,但动态查询,读写分离,分表分库需要动态生成查询语句和连接字符串的时候就比较难控制,所以在我们的产品中允许处理这些问题的时候直接使用ADO.net。至于ORM我都不太熟悉,SQL mapping ibatis倒是很熟悉,用它做过几个项目,java和.net都有,感觉上它是足够灵活的,但最近几年都没用,看到改名叫MyBatis,不知道在.net平台这边稳定性上怎么样,有没有啥bug。 不知道大家有什么推荐我用的没有,我最关心的是可定制性,可以给我更多控制SQL的权利,第二就是易用性,别配置起来和coding的时候麻烦的要死,那还不如不用。
还有一些问题比如一些数据库,基础组件,消息队列方案,分布式cache,反向代理等技术的选择,但这些问题我都没有想好,以后再拿出来和大家讨论吧。
随便评论,我用给面子,呵呵,评论给意见的都有分,呵呵