个人那些年(10)~来到更大的团队,作了架构师

回到目录html

个人那些年(10)~来到更大的团队,作了架构师

  • 又回石景山上班了
  • 继续使用LINQ+Mvc技术
  • EF被团队普遍的使用
  • 为项目上了全文检索
  • 研究了微软的NlayerApp这个领域驱动框架
  • 看了Microsoft .NET企业级应用架构设计并获得了具体应用
  • 公司开始上redis高可用集群
  • 公司开始上mongodb高可用集群
  • 公司开始上moebius sqlserver高可用集群
  • 公司项目用了Xamarin
  • 公司项目用了node.js
  • 公司项目使用了Lind.DDD框架
  • 公司项目用了.net core
  • 感受本身是时候离开了

又回石景山上班了

2011年9月,我如愿的收到了xx教育集团的offer,我离开了良乡,去了更大的平台发展,石景山对于我来讲是个熟悉的地方,个人第一份工做就是在这里,就是计算机培训老师,薪资500,呵呵!转眼已经7年过去了,我终于作了程序员,那但是我上学时的梦想!老师总和咱们说,若是大家能去中关村作个『蓝领』,薪资也能到3,5千,那句话对我是多少的诱惑呀!今天终于实现了,能够对着电脑写代码了,并且仍是为其它人设计整体架构,固然也是有很大的压力的,毕竟是第一次作系统架构,在一个系统开发过程当中,问题总会出现,就像墨菲定理同样,问题只要有可能出现,就必定会出现!我始终相信,==出现问题,总有解决的办法,只是咱们尚未找到==!java

继续使用LINQ+Mvc技术

来到新公司后,看了他们的项目,也是使用linq+mvc作的,对我来讲是轻车熟路,在开发过程当中有一些比较性能差的写法,我也都指了出来,像IQueryable和IList的区别,何时用它们等,为项目提供了分页控器,对seo这块的优化,重写了一些模块的路由,为linq提出了仓储模式的概念,几年后发展大部分框架都使用了repository模式,而目前的springboot.jpa也是使用了这种统一的数据访问模式,呵呵。node

EF被团队普遍的使用

在项目上线后,咱们又接了新的项目,这回公司叫我负责整个的架构,我提出了ORM使用ef来代替linq,由于linq2sql这个工具微软已经不更新了,而ef是他们的主流ORM工具,因此新项目用了ef,而且我写了关于EF的仓储实现,封装了curd实体和curd集合的操做,添加了对分页,排序,动态查询的支持,那应该是2012年的事,在这一年个人博客已经有2年的历史 了,也有很少粉丝,有时候,博客成为我学习的动力!程序员

为项目上了全文检索

项目在查询上表现不是很好,对于查询条件的选择是多样的,须要支持like检索,咱们知道数据库使用like是不走索引 的,也就是说不走b-tree,这样对数据库性能影响很大,基本就是全表扫描,因此我打算上lucene这个全文检索工具,这个我在上一家单位用过,缺点就是索引文件更新实时性问题,我在网上找了一些资料,发现他公开了一些api,我因而在后台管理中添加了对它的支持,当后台有资源更新中,我就出发lucene的api,让索引文件按需更新,注意只是更新须要的那部分资源,后来这种技术在solr里被友好的实现了,哈哈!redis

lucene是solr的前身,solr只是对lecene进行的二次封装,以lucene为核心的框架还有elasticsearch。spring

研究了微软的NlayerApp这个领域驱动框架

2013年,在工做之余,我也看了一个微软官方为DDD设计的demo,即NlayerApp,这个框架写的不错,分层清晰,与传统N层架构有很大区别,它以领域对象为核心,若是你的领域对象须要对数据库操做,你须要在领域层定义IRepository接口,而后在数据层去实现,也就是说,数据层是依赖领域层的,数据层只负责持久化数据,通常地,咱们在设计仓储模式时,有一个统一的泛型对象,程序员只实现本身具体的持久化逻辑就能够了,不须要关心底层的实现。sql

领域驱动设计的宗旨就是一切于领域模型为核心,一切由它去展开,持久化只是一种工具,它并非必须的。mongodb

看了Microsoft .NET企业级应用架构设计并获得了具体应用

在工做之余,我还看了微软的《Microsoft .NET企业级应用架构设计》这本书,这书能够说对架构师的朋友是一个大餐,里面从代码重构,设计模式应用到分层设计原则应有尽有,我先后看了好几篇,本身也把核心的内容提取出来,写在word里了,记得还给同事们讲过,确实,一本好书对于程序员来讲很是重要,他使你更加快速的成长!docker

  • Microsoft .NET企业级应用架构设计
  • 代码大全
  • 重构,改善即有代码的设计
  • 代码之美
  • 代码之殇
  • 你必须知道的.NET

公司开始上redis高可用集群

2013年,公司在本身的服务上搭建了redis,开始只是单点模式,以后发展到了高可用集群模式,咱们使用redis时尚未cluster,因此集群用的是Sentinel+Twemproxy实现的,Twemproxy就是代理,程序端直接与它通信,而sentinel负责与redis db通信,当db宕机时,它会通信sentinel,而后sentinel会把最新的redis master告诉Twemproxy,这有一个好处就是程序端不须要关心真实的redis db,而若是你的项目比较小,也能够直接用sentinel就能够实现高可用,个人lind.ddd.nosql里对 redis进行了二次封装,已经彻底支持这种哨兵集群了。数据库

redis sentinal会封闭一些指令,只公开几个须要的指令,这是一种安全的考虑

公司开始上mongodb高可用集群

在2014年时,公司有了java部门,负责另外一个项目,而他们的经理要求上mongodb,说它是个文档数据库,对日志这种数据 支持的很好,并且支持复杂的查询,并且自己就能够实现高可用,分片,复本等模式,因而CTO赞成上mongodb了,这之后的项目里,像考题,留言,投诉等非关键数据都存储到了mongodb上,我作为和运维走的很近的人,也和运维一块儿搭建起了mongodb集群,作为.net团队的架构师负责新技术的研究工做。

mongodb的集群配置须要注意,为了让选举有效,须要集群节点为奇数个

公司开始上moebius sqlserver高可用集群

公司的sqlserver数据库一直是单节的,而在业务和数据量上来以后,单点是靠不住的,因此咱们考虑为sqlserver上集群,它自己没有什么好的方案,因此咱们选择了第三方moebius来作这事,它是一个高可用集群方案,有一个主节点和若干个从节点,主节点负责写数据,而后实时同步到从节点,当你的请求是select时,它会走读节点,当你的请求是update,delete,insert,transaction时会走写节点,因为moebius采用了实时同步方案,因此须要用到msdtc,即分布式事务,这对于多点数据同步来讲是有负做用的,因此你的读节点不要太多,太多反而对写影响比较大。

moebius通常设置一个主,两个从,而后它对外暴露的是vip,程序端直接链接vip地址,而后它会对sql语句进行拦截,将对应的语句进行转发

公司项目用了Xamarin

公司开发了一个手机的h5网站,但愿开发一个app,而后登录这块用原生的,而后页面用h5网站便可,原生的咱们使用了微软的xamarin来实现,我主要作的是一个基于安卓环境的app,比较简单,但确实能够实现,打包以后体积比较大,兼容性给它满分!

公司项目用了node.js

在2015年公司打算用node.js作高并发项目的入口,而后在node.js项目里再进行二次转发,node.js因为本身的特色,它是单线程的,使用方法回调实现异常,它是非阻塞的产品,与如今比较火的go相似,只不事后者是多线程的,它们最大优点就在于高吞吐量的支持上,咱们的node.js运行在centos上面,以后把它部署到了docker里运行,固然这已是2017年的事 情了,docker我主要在下一家单位用的比较多,后面也会讲到。

公司项目使用了Lind.DDD框架

在公司6年时间里,本身贡献了lind框架,主要用在底层框架上面,把它发布到nuget以后,公司的新项目可使用使用,并且我还把后台模块进行了封装,使得他能够在几分钟内完成一个后台管理系统的搭建工做。

lind框架主要包括了对不少第三方组件的二次封装,统一进行了配置和封装,让开发人员更方便的使用,像cache,redis,mongodb,solr,ef,dapper,domain,logger都进行了统一的配置

公司项目用了.net core

2016年末,公司打算在一个小项目中使用.net core,当时它才出来没多久,只是记得是.net core1.1吧,本身也学习了一下,不过没有更深刻的研究,只是对efcore进行了设计,但也出现不少问题,估计这些东西要到.net core2.0才能解决了

工做之余爱上了踢毽子

工做之余,我同事们也到天台上踢踢毽子,锻炼一下身体,一天总坐着确定是不行的,你们在一块儿还打了比赛,每两我的一组,中间一个大网,像是打网球,只不过咱们用脚来完成!

感受本身是时候离开了

在2017年,我感受本身在公司也没什么发展了,想出去看看,因而开始找工做了,事实上,我这个年纪找工做不是一件容易的事,须要公司对我很是了解,而后很是须要我这种对.net框架比较有经验,对技术比较有追求的人才会录用我,这一点我本身也很清楚,由于我们学历不高,不太会说话,要的薪资也不低,因此只能相互碰了!

每一个人都应该对本身的将来有个规划,走技术,仍是走管理,本身内心要有明确的答案!

回到目录

相关文章
相关标签/搜索