能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。
全部博文(399)
分类: 架构设计与优化
2015-04-20 14:05:02
前端: 1)强类型DSL代码生成JS:( CoffeeScript = TypeScript = Scala.js ), 人个看好Scala.js但有待发展,CoffeeScript更加成熟,Typescript更活跃现在(公司全在用)。 2)服务框架DSL: ReactiveJS = AngularJS, AngularJS 在国外用的比较普遍,但ReactiveJS发展更快一些, 个人看好ReactiveJS,因为AngularJS Singel Page APP 在产品性能实在是。。,可能是双向Digest的原因吧。 后端:
1)异步后端技术而言:Play atop Scala 国外逐渐成为主流,Akka Cluster潜力无限,终有出头之后。 2)异步HTTP Client: 毫无例外都是基于Netty,成熟的有 Java 的 async-http-client,Scala 的Dispatch (Wrapper of java one) 3)异步数据库驱动:毫无例外JDBC全是Blocking,重点选一个,基于ReactiveMongo / postgresql-netty / adbcj / async-mysql-connector / mongodb-async-driver 如果一定要基于Hibernate,请牢记基于AOP代理的事务@Transaction注入的方法不能牢用本类中的方法,调度到线程池执行时要另外声明一个类来调用事务注解的wrapper方法。 详情请看 如果一定要基于JDBC,请牢记: Given the fact that JDBC is blocking, thread pools can be sized to the number of connections available to a db pool assuming that the thread pool is used exclusively for database access. Any lesser amount of threads will not consume the number of connections available. Any more threads than the number of connections available could be wasteful given contention for the connections.
抛开之前所有,Node.js / cluster 也完全满足异步化的需求,只是必须要cluster才能模拟多线程啊。相比之下,Play 线程模型更吸引人,难以想像Actor Cluster是多么强大的东东啊。