Study in the blog Park for a long time, and today finally opened their own blog, ready to share some insights and experience. First of all, thank the blog Park owners to provide such a good learning platform for programmers, but also very grateful to Zhang Shanyu ,dax.net,netfocus, Masaki and other technical Daniel's selfless sharing, Learned a lot from them. And I have recently been concerned about the pastoral cricket , sharing a lot of new technology and thinking, here is also deeply grateful! Hope the cricket to redouble their efforts to share, learn from you!
I started my own work (2002) in Web development (ASP. NET direction), has been 13 years, from the junior programmer to the technical manager, development manager, Project Director, later, the partnership venture failed, transferred to the Enterprise Management training and consulting industry for 5 decades, to broaden their horizons, improve overall ability, accumulate network resources. 2014 entered a listed company just invested in the formation of the mobile Internet start-up team, initially mainly responsible for product design, but a lot of well-designed features and ideas, development team technology can not be achieved. There is no way, have to re-examine the modern web front-end technology, good standards and examples, the most difficult to develop the front-end part, and then to the development team to implement the backend. A few months later, the development team made a poor result, the company let me take over the development department, personally lead the development team. So I recruited a product manager with more than 10 years of work experience to share part of the product design work, and my energy was more in the reconstruction development team.
I took over two or three years of working experience in the development department and a few 10 years of working experience with Java developers (because the Headquarters company has more than 10 years of Java development gene, in the establishment of our entrepreneurial team, from the previous development team of the technical backbone, so back-end development also selected Java technology), I took over and recruited a few more, but neither the development efficiency nor the quality, are not up to expectations. At the end of 2014 when the company was preparing a new product, I was thinking about Java, PHP, node. js, ASP. NET, the end-of-development technology for the new project is finally selected. The reason for choosing ASP is that you can write another article, but in short, the new version of ASP, open source and cross-platform is no longer a problem, and already have a full async mechanism like node. js, C # syntax is simple and excellent.
During this time of the recruitment interview process found a very serious problem, most of the work 2, 3 years or 5-10 years of procedural personnel, basic knowledge, experience, the understanding of new technology and application, are not so difficult to understand. Of course, because we are a start-up company, it is difficult to attract talents to apply for, but the programmer who worked for many years, but also just a simple three-layer architecture of data additions and deletions, no technical expertise and development ideas, even can accurately answer "int type is how many bits, can express the maximum range is what magnitude, or 2 of how many times "the question of the interviewer is almost none." There are few interviewers familiar with "dependency injection", and people who apply for senior development and architect positions have little to say about caching mechanisms. In fact, each of these knowledge points, on the Internet can find very detailed information. I think that as long as we find the direction and study hard and apply, six months can be more than most work 2, 3 years of people, hard work 2 years can be more than most work 5 years 8 years of people, because most of the programmers working for many years to do repetitive, non-promotion work. This period of time is not satisfied with experience, so let HR more recruit some have strong self-motivated graduates to cultivate.
Although I entered the time earlier, but only the first 6 years is in the specific development of technology, behind a few years just for enterprises to provide solutions, rarely specifically written procedures. Since 2014, I started to re-learn all kinds of front-end, back-end technology, so now is just a newcomer, willing to learn from the experienced predecessors, willing to grow together with you new people.
The internet has a lot of good experience to share, there are a lot of good open-source projects, but relatively scattered, I first listed in the past few months to learn and apply to the project's knowledge point, after the detailed article about how I learned and applied.
Front End:
ideas: responsive layout, single page app, icon font, MVVM, JS Modular (sea.js), JS template engine (Juicer)
Technology/Framework: HTML5, CSS3, less, Jquery, Bootstrap, Framework7
components: Webuploader, Ueditor/umeditor, Highcharts, Jquery.datatables, Jquery.form, Jquery.validate, Jquery.Jcrop, Jquery.mcustomscrollbar, Spectrum, Toastr, Blockui, superslide, and a whole bunch of small jquery plugins are omitted.
Back end:
thought: DDD (Domain-driven design), TDD (test-driven design), DI/AOP (Dependency injection/aspect-oriented programming), modular development, asynchronous programming, distributed architecture, Agile development Scrum
Technology/Framework: ASP. MVC5, C # 5.0, Entity Framework 6, xunit+nsubstitute+ shouldly
Open Source components: Aspnet.identity, AutoMapper, Castle.windsor, Miniprofiler
Tools: Git, VS2013, SQL Server, MongoDB, Redis
|
|
|
Infrastructure Layer Component project folder structure |
Infrastructure Layer Component Project file structure |
Modular development Project Structure |
|
|
|
The code of the application layer is simply not required to write comments! Permissions validation, data validation, exception handling, transaction processing, data transformation, and so on are all done on the infrastructure, and the module developer does not need to write the code. Application Service method can automatically generate Web API methods, the client Ajax directly call, do not need to write Controller. The application service method automatically applies the Unitofwork (unit of work) mode, except for methods that start with get, and other methods to automatically open database transactions. |
|
|
Permissions validation, data validation, exception handling, transaction processing, data transformation, and so on are all done on the infrastructure, and the module developer does not need to write the code. The application service method automatically applies the Unitofwork (unit of work) mode, except for methods that start with get, and other methods to automatically open database transactions. |
Re-post some of the front-end interfaces in the previous project:
Wow, the time is too late, go to sleep!
The first time in the blog Garden article, the format is not good, first released and then modified.
New ideas, technologies, new architectures-better and faster development of modern ASP.