My years (10) ~ came to a bigger team, made an architect

Source: Internet
Author: User
Tags mongodb redis solr

Back to Catalog

My years (10) ~ came to a bigger team, made an architect
    • and went back to Shijingshan to work.
    • Continue to use LINQ+MVC technology
    • EF is widely used by the team
    • Full-Text search for the project
    • Researched Microsoft's Nlayerapp this domain-driven framework
    • Looked Microsoft .NET企业级应用架构设计 and got a concrete application
    • The company started Redis high-availability cluster
    • Company started on MongoDB high availability cluster
    • The company started Moebius SQL Server high Availability cluster
    • The company project uses Xamarin
    • The company project uses node. js
    • The company project uses the LIND.DDD framework
    • The company project uses the. NET Core
    • Feel like it's time for me to leave
and went back to Shijingshan to work.

September 2011, I have received the offer of XX education Group, I left the good township, to a larger platform development, Shijingshan for me is a familiar place, my first job is here, is the computer training teacher, salary 500, hehe! In the blink of an eye already 7 years later, I finally did the programmer, that is my school dream! Teacher Sum we say, if you can go to Zhongguancun to do a "blue collar", pay can also reach 3, 5,000, that sentence to me is how much temptation ah! Today finally realized, can write code to the computer, but also for other people to design the overall architecture, of course, there is a great pressure, after all, is the first time to do system architecture, in a system development process, the problem will always appear, like Murphy's theorem, the problem as long as possible, it will appear! I always believe, = = There is a problem, there is always a solution, but we have not found ==!

Continue to use LINQ+MVC technology

Came to the new company, looked at their projects, but also use Linq+mvc do, for me is pro, in the development process there are some poor performance of the writing, I also pointed out, like IQueryable and IList differences, when with them, etc., for the project provides a page controller, SEO This piece of optimization, rewrite some of the module's routing, for LINQ put forward the concept of warehousing mode, a few years later, most of the framework has used the repository model, and the current SPRINGBOOT.JPA is also using this unified data access mode, hehe.

EF is widely used by the team

After the project went live, we took a new project, this time the company called me responsible for the entire architecture, I proposed the ORM to use EF instead of LINQ, because linq2sql this tool Microsoft has not been updated, and EF is their mainstream ORM tool, so the new project with EF, And I wrote about the warehouse implementation of EF, encapsulated the curd entities and curd collection of operations, added to the paging, sorting, dynamic query support, it should be 2012, in this year my blog has been 2 years of history, there are not many fans, sometimes, blog become my motivation to learn!

Full-Text search for the project

Project in the query performance is not very good, the choice of query conditions are diverse, need to support like retrieval, we know that the database using like is not going to index, that is, do not go b-tree, so the database performance impact is very large, basically is full table scan, So I'm going to go to lucene this full-text Search tool, which I used in the previous unit, the drawback is the index file update real-time problems, I found some information on the Internet, he disclosed some of the API, I then added support in the background management, when the background has resources to update, I'm going to go. Lucene API, let the index file update on demand, note just update the part of the resources needed, and later this technology in SOLR was friendly to achieve, haha!

Lucene is the predecessor of SOLR, and SOLR is just a two-time package for Lecene, with Lucene as its core framework and Elasticsearch.

Researched Microsoft's Nlayerapp this domain-driven framework

In 2013, outside of work, I also saw a Microsoft Official for DDD design demo, namely Nlayerapp, this framework is good, layered clear, and traditional n-tier architecture is very different, it takes the domain object as the core, if your domain objects need to operate on the database, You need to define the IRepository interface in the domain layer, and then in the data layer to implement, that is, the data layer is dependent on the domain layer, the data layer is only responsible for persisting data, generally, we in the design of warehousing mode, there is a unified generic object, programmers only implement their own specific persistence logic can be, There is no need to care about the underlying implementation.

The purpose of domain-driven design is that everything is at the core of the domain model, and it's all about it, and persistence is just a tool, it's not necessary.

Looked at Microsoft. NET Enterprise Application architecture design and has been specifically applied

In addition to working, I also read Microsoft's Microsoft. NET Enterprise Application Architecture Design This book, this book can be said to the architect's friend is a big meal, inside from code refactoring, design patterns applied to layered design principles have everything, I looked around a few, I have the core of the content extracted, written in Word, remember to colleagues told, indeed, A good book is very important to programmers, and he makes you grow faster!

  • Microsoft. NET Enterprise-class application architecture design
  • Code Daquan
  • Refactoring, improving the design of code
  • The beauty of code
  • The shame of the Code
  • You must know the. NET
The company started Redis high-availability cluster

2013, the company in its own services to build a Redis, began only a single point mode, and then developed to a high-availability cluster mode, we use Redis has not cluster, so the cluster is Sentinel+twemproxy implementation, Twemproxy is the agent , the terminal communicates directly with it, and Sentinel is responsible for communicating with Redis DB, which communicates Sentinel when DB is down, and Sentinel will tell Twemproxy the latest Redis master, One benefit is that the program side does not need to care about the real Redis db, and if your project is small, it can be highly available directly with Sentinel, my lind.ddd.nosql has two packages of Redis, and has fully supported the Sentinel cluster.

Redis Sentinal will close some instructions, exposing only a few required instructions, which is a security consideration

Company started on MongoDB high availability cluster

In 2014, the company had the Java department, responsible for another project, and their manager asked MongoDB, said it is a document database, to log this data support is very good, and support complex query, and itself can achieve high availability, fragmentation, replicas and other modes, So the CTO agreed on MongoDB, after this project, such as questions, comments, complaints and other non-critical data are stored on MongoDB, I do as and operations to go very close to the people, but also with the operation to build a MongoDB cluster, as a. NET Team architect responsible for new technology research work.

MongoDB cluster configuration needs to be noted, in order for the election to be effective, the cluster node is required to be an odd number of

The company started Moebius SQL Server high Availability cluster

The company's SQL Server database has been a single-node, and after the business and data volume up, the single point is unreliable, so we consider the cluster on SQL Server, it itself has no good solution, so we chose the third party Moebius to do this, it is a highly available cluster scheme, There is a master node and several slave nodes, the primary node is responsible for writing the data, and then synchronizing to the slave node in real time, when your request is select, it will be the daytime node, when your request is update,delete,insert,transaction will go to write the node, Because the Moebius uses the real-time synchronization scheme, so need to use the MSDTC, that is, distributed transactions, which for the multi-point data synchronization is a negative effect, so you do not read the node too much, too much on the impact of writing is relatively large.

Moebius generally set a master, two from, and then it is exposed to the VIP, the terminal directly connected to the VIP address, and then it will intercept the SQL statements, the corresponding statements forwarded

The company project uses Xamarin

The company developed a mobile phone H5 website, hope to develop an app, and then landing this piece with the original, and then the page with H5 site can, the original we use the Microsoft Xamarin to achieve, I mainly do is an Android-based environment app, relatively simple, but can be achieved, After packing the volume is larger, compatibility gives it full marks!

The company project uses node. js

In 2015, the Company intends to use node. js to do high-concurrency entry, and then in the node. JS Project two more forwarding, node. js due to its own characteristics, it is single-threaded, using method callback implementation exception, it is non-blocking products, and now compared to the fire of go similar, but the latter is multi-threaded, their greatest advantage With high throughput support, our node. js runs on CentOS and then deploys it to Docker, which is a 2017 thing, and I'm going to use it mostly in the next unit, and I'll talk about it later.

The company project uses the LIND.DDD framework

In the company 6 years time, the contribution of the Lind framework, mainly used in the bottom frame, post it to NuGet, the company's new project can be used, and I also have the background module encapsulated, so that he can in a few minutes to complete a back office management system to build work.

The Lind framework includes two packages for many third-party components, unified configuration and encapsulation for easier use by developers, and a unified configuration like Cache,redis,mongodb,solr,ef,dapper,domain,logger

The company project uses the. NET Core

At the end of 2016, the company intended to use. NET core in a small project, when it was not long ago, just remember that it was. Net core1.1 Bar, I also learned a bit, but no more in-depth study, just efcore design, but also a lot of problems, it is estimated that these things to. NET core2.0 to solve

I fell in love with the shuttlecock after work

After work, my colleagues also to the platform to kick shuttlecock, exercise a body, a day always sitting is certainly not, we also played the game, every two people a group, the middle of a big net, like playing tennis, but we use the foot to complete!

Feel like it's time for me to leave

In 2017, I felt that I had no development in the company, and came up with a look, so I began to look for a job, in fact, my age to find a job is not an easy thing, need the company to know me very much, And then I really need this. NET Framework compared with the experience, the technical comparison has the pursuit of talent will hire me, this point I am also very clear, because we are not high education, not very can talk, to pay is not low, so can only touch each other!

Everyone should have a plan for their future, take the technology, or go management, his heart should have a clear answer!

Back to Catalog

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.