当前位置:网站首页>Technology selection and decision-making of large-scale Internet applications, 10 records of success and failure
Technology selection and decision-making of large-scale Internet applications, 10 records of success and failure
2022-07-18 10:04:00 【Four fires】
As a decoupled version based on the old version , This large Internet application product is from 2009 It began to land in the middle of the year . And I am also one of the main creators of this version , To this day , The team has grown to the scale of a large Internet product team with hundreds of people to develop and test , Release 、 Many commercial versions have been cut and launched .
An examination of the architecture , Reflection on model selection and design , It's not just at the beginning of the product , It should be carried out in the whole process of product development , This is how the team's ability to make similar products matures in continuous summary and self-criticism . Here is my personal opinion , Inevitably, it is not to the appetite of many people , But I still hope these words have enough value to make people think . in any case , For such a product , Interpret its historical story from today's perspective , What's more, it has a special flavor .
—————————————————————————————
5 Successful records :
1、Portlet Technology is the core of the whole architecture .
This is a record of success , It is also a record of failure .
Portlet It brings considerable page customization flexibility to different customized versions of each office , Don't understand, jsp Administrators of can deploy pages according to their own requirements , Through simple selection and dragging , Show the rich channels .
On the other hand ,Portlet It retains considerable flexibility for column expansion and customization , Especially for potential Internet applications, keep the scalability according to the column dimension , Leave enough space .
2、 The persistence layer chooses a more lightweight iBatis, no choice Hibernate.
The fact proved that ,iBatis transparent 、 Simple , Easy to configure and use , Most developers can read through the code of the persistence layer , Developers who are good at database can easily complete Oracle Next SQL Statement tuning , Applied to the iBatis In the configuration file , It doesn't take much ORM Technology accumulation , There is no need for deep Hibernate Tuning techniques .
3、 The business core logic layer can be abstracted , It can be independently released API modular .
Facing a variety of access channels , Pass the core business API Behavior extracted , The biggest benefit to the project team is : Clear team division .
although API The module is not mature , however API The birth and development of means that the development and customization teams of various access portals can focus more on the work centered on presentation , Give the sorting of business code to a special API The team does .
In the long run , pure Java Of API It's clean 、 Simple and easy UT Of , In this natural way, the persistent layer is isolated , It also protects the code quality of the core business .
4、 Extract the interface display part of the function into reusable business tags .
Some people will disagree with this , in fact , except FreeMarker Its performance is really beyond flattery , The benefits of componentizing the display part of the interface in the form of labels are great .
Ideal situation , The customization team can insert through simple tags 、 Deletion and modification , Complete the customization of the page , This is more complicated than understanding grandeur jsp page , It's a lot easier to copy and paste .
5、 The infrastructure is stable and guaranteed .
Infrastructure includes logs 、 Protocol stack 、License wait , Most are stable and easy to use .
For example, abnormal system , The whole exception system brings a natural and easy exception handling process to the development , Developers only need to pay more attention to the core process , Leave the error process to the runtime exception ; Different levels of exception capture bring convenience to the error display and induction of the final page .
There are also regrets , For example, the error code is tangled , The error code is the result of fierce struggle and compromise in the internal discussion of the team , Some are too large and complicated , This seems to validate : Software engineering is not an election .
—————————————————————————————
5 Failed records :
1、Portlet Technology is the core of the whole architecture .
This is a record of success , It is also a record of failure .
Portlet Many of its features are far from being properly developed , for example Portlet The maintenance of state 、 The ability of remote aggregation and so on , But it brings many troubles to developers , For example, page decomposition is difficult ,Portlet Session and Portal Session The mutual differences between them , Aggregation process performance problems, etc , It puts forward higher requirements for developers to customize their hands .
2、 Independence is based on Portlet The core is responsible for portal operation Portal platform .
Portlet Specification is an abstraction of aggregate presentation behavior , Through the form of such an independent platform as componentization , Separate the page control aggregation process from business page presentation and business process processing , Developers can focus more on business development .
I think this is the original intention of its birth , But actually , But it brings complexity to the aggregation process , The method call stack is too deep , And the developers of portal customization , It also requires considerable training to get started .
3、 adopt ajax Way aggregation Portal In a different place war The management console page in the package .
The original intention is to make different management console pages follow different Portal Access channel separation release , Simple integration on the page during presentation .
However, due to the security mechanism of the browser and the mechanism of independent session management for different domains , It was introduced like a demon , It brings more difficulties than customization , Difficulties for developers to understand , There are also some problems that are difficult to solve when transferring information between pages in different domains because the session cannot be unified .
4、 Retain XDIME、WML and XHTML Three sets WAP Template page for .
Of course, there may be some factors beyond human control .
XDIME The purpose of the page is to convert it into a mobile phone through the terminal adaptation component WML and XHTML Page , And because of local or some historical reasons ,WML and XHTML It can't be simply abandoned , Whether it is an active decision or forced by helplessness , The problem is that the number of page templates has tripled , It brings a lot of workload to development and testing .
Final ,WML and XHTML The template was abandoned , Just keep XDIME A set of templates .
5、 Lack of a simple and manageable UI frame .
Front end development is the bottleneck of the whole product , Although the page is not very complex , The front-end chaos has brought many problems , These problems are mainly exposed in the product customization and the final user detail experience . Whether Internet products are professional , It is largely decided by the front-end team of the product .
According to different team levels 、 Different front-end display requirements , Need to customize different UI frame . Simplicity shown by , And you need a customized baseline version , That determines our UI The framework should be simple ; And due to the poor front-end ability of development members , It's our decision UI The framework should be easy to control and manage , You should not expose overly complex interface behavior to ordinary developers .
The articles are all original without special indication , It shall not be used for any commercial purpose without permission , Please keep the integrity of reprint and indicate the source link 《 Four fire's nagging 》
×Scan to share with WeChat
边栏推荐
- 做VR全景需要找平台吗?全景平台能带来哪些帮助?
- Centos7 installs MySQL 5.7 through Yum and enables remote access
- JUC joint contracting - countdownlatch
- 代码覆盖率与测试覆盖率你选哪个?
- 项目管理系统选择有哪些需要注意的点?
- Redis - Redis List 功能详解与工业应用
- 基于多码GAN先验的图像处理
- JUC并发包—CyclicBarrier(循环栅栏)
- Notes on the method of Construction -- Chapter IV cooperation between two people
- CommonJS
猜你喜欢

Manually upload form data + image file function

Comment publier votre propre paquet NPM

Kotlin Compose 底部栏

Mysql基础学习Day05

Hcip (day 1) (HCIA knowledge review)

顺势而为,酷雷曼携众多前行者继续出发

Harbor:修改默认的172网段

Centos7 installs MySQL 5.7 through Yum and enables remote access

8个关于 Promise.then 和 Promise.catch 的面试题,一定要掌握

做VR全景需要找平台吗?全景平台能带来哪些帮助?
随机推荐
GM3234 阴阳
笔试强训第15天
超空间旅行 题解
nodeJS中npm简介与使用方法
What the server process needs to do during the user session.
Centos7.2 install mysql5.7 through RPM package
动态规划139单词拆分
in_array的第3个参数实例分析
GM3379 【NOI2013模拟】查询
Miller_Rabin 简要版
Laravel executes tasks asynchronously
2022-07-15 第五小组 孔海波 学习笔记
大整数分解 浅析
Unity截图功能并让UI显示
微服务架构 | 组件目录
(board) acwing 143 Maximum XOR pair
盲目用多线程反而容易导致 OOM
《构建之法》笔记---第四章 两人合作
Offline installation of MySQL 5.7 for Linux
JUC并发包—CountDownLatch