当前位置:网站首页>Trends in software development in 2022
Trends in software development in 2022
2022-07-27 22:55:00 【Software testing network】
1. Observability [ track 、 Monitoring and recording are crucial

You are developing your software , You are ready to deploy it . All the tests passed , The test coverage has also reached a good level . Knowing this , We can deploy our code , And continue to work calmly . Although this is not the ideal situation ( And it's rare ), Our code may still fail . Yes ! therefore , Developers need to watch their code all the time , And keep it reporting metrics . In case of any fault , You need to get your system ready to provide you with logs . just as Andrzej Written .
Observability is crucial . Without it , Developers are blind . It gives us the opportunity to react to every problem in the system at any time .
2. Use at the same time " There is no server " and " There are servers. " Method is a good way . under these circumstances , We can benefit from two software development methods .
Serverless Is a way to run applications ( Seems to be ), No servers are involved . Of course , This is a major simplification -- There are always servers involved ; Just in this case , You don't need to do anything about them , And they are pre configured . It is touted as a new black Technology , except ...... It is not the perfect cure for all diseases . First , You cannot configure the underlying server , As we mentioned earlier . You can't really know what's under the hood . This main disadvantage is also the main advantage of this method . You don't need to configure anything , So it's not so much deployment ⇾ worry , It's more about deployment ⇾ forget .
Solutions without servers or with servers have benefits . In modern systems , It is common to combine the two methods to obtain most solutions .
3. Container everything !Kubernetes Is a popular technology !
Not all software development trends are good ideas . You remember CoffeeScript or Ruby Do you ? Unfortunately , We have . Fortunately, . Kubernetes(K8S) It seems that I don't intend to join the sad valley of these two people .K8S Is making DevOps The life of experts has become more 、 more 、 It's easier .
Here are the benefits of introducing containerization and container orchestration as core terms of the technology strategy .
- You will be able to easily optimize your IT Infrastructure costs
- Due to seamless expansion , Your users can expect higher availability and better service level agreements
- Use Kubernetes Make it easier for your team to use multi cloud solutions
- Because containers and container choreography tools are not related to technology , You can use any technology you want to build a leaner team .
- By containerizing , You will never meet again " It works on my machine " Of The old question
- After acquiring a financial technology start-up , Northwest mutual bank must integrate the workflow between cloud native and internal processes , Deploy more frequently , And unify the operation of its team , To ensure that their customers continue to get the seamless experience they are accustomed to . Use Kubernetes Help them speed up their deployment 25 More than times , From one year 24 Time to 10 Months 500 More than once , Planned interruptions have become a thing of the past , Because of their API Management is deployed in Kubernetes Part of the overall stack on , Infrastructure costs have fallen significantly . You can learn more about these points in the case study 、 towards AWS The transition of 、 Using microservices 、 Updated developer autonomy , And let their 450 Million customers are satisfied with the quality and speed of their service .
- stay Capital One Case study , The bottom line is a big question . Their estimates show , If not used K8s The ability to automatically and easily expand , their AWS Infrastructure costs will easily double or even quadruple . They use Kubernetes Other benefits we see are the time to market of new products , Now just 2 Zhou , In the past, you may need 3 Months or more . Begin to pay close attention to Kubernetes The main reason for the development ?Capital One Our team wants to improve their speed of processing streaming data , In order to make key decisions in the field of fraud detection and credit decision , And deal with other big data and machine learning applications that are crucial to the daily operation of banks . You can learn more about these points in the case study 、 Improved deployment speed 、K8s How to help unify Capital One Development environment and so on .
In addition to the obvious benefits , We will leave you with some case studies , I hope I can give you some inspiration , Help you decide to use Kubernetes Is it right for you , And show more in-depth benefits .
- Reduce time to market for new features , Increase the configuration speed from a few months to a few minutes , And ensure that one family is 7500 The education company serving 10000 users is high SLA.
- In a complex development environment including many products , Downtime between application versions is zero , The new deployment time is shortened from a few hours to a few seconds , The new release speed has been improved 3 times .
- Zalando This European fashion e-commerce leader uses K8s Expand , Realize a variety of business use cases , If delivered on the same day 、 multi-tenancy 、 Increase their product and geographical range , And enable them to rewrite and create everything they have been using as custom software SaaS product .
- Adidas The loading time of e-commerce websites has been reduced by half , Publish many times every day , Instead of once a month , As Adidas turns to cloud native , The autonomy of developers is greatly enhanced .
4. When it comes to software architecture , We should divide and rule .
The large-sized monomer is a story of yesterday to some extent . They have long plagued developers , But not now . Dividing a huge unit code base into smaller applications is a new way of doing things . It can make your application fireproof , Reduce the frequency of errors , Make applications safer when errors occur . The disadvantage is that , Applications become more difficult to test , And more resources are needed to complete . For smaller teams , Maintaining a single machine is still more meaningful .
Divide a single application into independent microservices .
5. Open source and free software are the way of the future .
React, Angular, as well as Zuul, They are from Meta( Used to be Facebook)、 Google and Netflix, It is a tool used by countless developers every day . If there were no free tools distributed by these organizations to all who would like to use them , Everyone's work will become more difficult . Countless services will not appear in the sun , Because writing these applications is too difficult or time-consuming . All of this is because , Before writing these applications , People have to figure out how to write the front end for scale , It would be extremely inefficient not to share the experience learned .
This is why we must praise the maintainers of open source and free software 、 Creators and all others who contribute to the creation and maintenance of this software .
Create a tool / Technology and make it open source ( Or make it free ) Bring eternal glory to the organization .
6. Using architectural patterns .
In software development , There is a common rule -- Don't reinvent the wheel . Knowing that we may have faced the same problems as others , This rule becomes more valuable . This is why engineers and developers around the world use architectural patterns to organize their projects -- Instead of wasting time thinking about how to find solutions that others have come up with .
Many modern software uses CQRS and Event Sourcing Equal mode . Don't reinvent the wheel , Use these modes .
7. Programming languages are constantly evolving .
The fact that we have more and more new programming languages is not surprising . They come and go , After leaving, it was replaced by other languages . No one else Algol or Pascal It's encoded . However , There is an old man ,C, There is still , Although this is a topic worth discussing alone .
One notable aspect is the way they have evolved over the years . At first , Imperative language is the only language that exists . then , Object oriented languages are booming , Now? , Some may argue that , They are being eliminated by more flexible languages , These languages are mixed with some imperative 、 Functional and object-oriented features .
The way language develops is more and more independent of the system we work , And related systems . Modern languages are cross platform . because DevOps The development of , The choice of language is becoming less and less important .
8. Due to the existence of modern infrastructure , Complexity is shifting from applications to external platforms .
The traditional infrastructure on the physical server in the basement has been replaced by cloud providers and related technologies . We have virtual machines as services 、 Databases as services and many other information elements as services . The main planning in software solutions has shifted to the high-level design of infrastructure , Because many things can be automated on this basis . Besides , We also have container and container coordination . It takes over complexity , Because we can divide the system into smaller 、 The simpler part .
Application code becomes more platform independent . However , The complexity lies in infrastructure and operations . Application developers are increasingly focused on business logic .DevOps The engineer deals with the rest .
9.SCRUM != AGILE
Adopting a specific process usually leads to learning behavior , Eventually lead to habits . At least , This is its theory .
However , In some cases , Process is still process , People just struggle to get through the motions , But behavior never develops . Think of it this way , How many development teams have you seen go through all Scrum Ceremony , But it doesn't actually work in an agile way ? Too much ? We agree to .
So what can you do ? First , Team identity , This is always the first step to establish . If your team doesn't see the value of working with this methodology , Then all the processes and ceremonies will not make any progress in the long run .
The second step is to make sure you have a great scrum master And project manager , To ensure that good practices are passed down , And ensure that any objections are accepted .
The third step is to realize : When agile value and Scrum When the framework has no value , Force it into people's throats , You will soon get nothing . We have introduced this and more in our article , The title is “Scrum isn’t the answer for every IT project”.
SCRUM It can be agile , But it does not guarantee agility . Agility comes from behavior , Not just the process .
10. Continuous security
As we have written many times before , Safety cannot be an afterthought . We can't simply " Leave it for later "." Checking the security issues of the application must be integrated into DevOps In the process , And it has been integrated into the development process itself from day one . Fortunately, , We can use some tools to make this process frictionless . One of them is Snyk. It is a comprehensive tool , Sure " Discover and automatically repair your code 、 Open source dependency 、 Vulnerabilities in containers and infrastructure [...]."
We have to apply security checks in the development cycle . Security is the foundation of trust -- Future currency .
11. Audit the service price of cloud providers
There is little competition among the three major cloud computing providers , The difference between the services they provide is ( More or less ) Any of the . In reality , The only difference we may see is the difference in service prices . That's why , Prejudice against this particular supplier is not necessarily a bad thing . Most of the time , There's really no difference .
Choose what you feel comfortable , And already know the supplier . Evaluate while walking , Don't be afraid to change .
Cloud providers have no virtual competition , No cost arbitrage . The cost of cloud infrastructure is very dependent on inflation and recession .
12. Everything can be " Serve as a service " To do it .
Platform as a service , Infrastructure as a service , Database as a service , Software as a service , Back end as a service ...... We haven't given you any more examples , You should know what we mean . Everything you can think of can be completed by a third party and sold to you .
Using these services is a trade-off . You gave up some control , In order to become more streamlined , Can iterate faster , And save some money in the early stage .
Due to the growing importance of cloud providers and serverless methods , Every software can be completed as a service .
13. Everyone is using Visual Studio Code.
Visual Studio Code It has set off a storm all over the world . Supported by Microsoft , Have an open source license , use TypeScript To write , And allow easy expansion of functions , These are great decisions . up to now , Text editor is the most popular choice among modern programmers . Other options , Based on Intellij Integrated development editor (IDE) or Vim, All in VS Code Under the shadow of , Even though JetBrains’ Fleets May change this situation .
Due to a variety of extension and customization tools ,VS Code Become the most popular among developers IDE.
14. Now ,TensorFlow Widely used .
TensorFlow, Google's machine learning framework is a very popular choice among programmers . First , It's in GitHub Before 20 One of the most popular repositories . then , There are multiple ports . Support JavaScript , These teams are in their, for example . React Native Applications , or web apps in React Or any other JS frame . This provides great flexibility , And allow the team to embed solutions into many solutions .
because TensorFlow, We can realize in network application AI Solution . The training model is provided by the Library . Developers should focus on training them .
15. A good long-term employment strategy is to hire young engineers and train them .
Hiring young engineers is a good long-term strategy . Although there is no one suitable for all companies " Best strategy ", But hiring young engineers and training them is definitely one of the best ways to grow and retain internal talent .
Hiring young people is a good way , You can slowly expand your team over time , And build an internal culture , Compared with hiring people who may have been stereotyped , Easier to shape . Junior high school students can also provide a new perspective , And get more exposure to current trends .
In some cases , It's not ideal , for example , When your company needs to expand and develop new functions quickly . If you have a small internal team , Due to unrealistic development expectations , They always try to catch up with their backlog , This is not the best .
The strategy of hiring young engineers to train them is not without pitfalls . Junior employees in your team have not been reviewed by previous companies , They have no work experience , And it's probably a hit . The unfortunate reality is , Although this strategy can be very good under the appropriate compensation scheme , But junior employees may find their place , They just need to move the company , Instead of waiting or pushing for a promotion or raise , You can double your salary 、 Three or even four times .
This is why there should be a transparent salary and salary table , Show people the direction and way of their career development . That's why it's also important to have an excellent induction program , To ensure that the time spent on training younger generations is well utilized , And benefit both instructors and students .
According to many studies , For software developers , A good long-term employment practice is to hire inexperienced engineers , And train them , Let them know the way of organization .
That's it .2022 The most influential 15 A trend . in your view , Which is the most influential ? Did we miss anything ?
边栏推荐
- Understanding and use of third-party library
- 对象创建过程及对象布局
- Redis learning
- IELTS Listening - Jianya 5 - text1
- In depth understanding of redis master-slave principle
- 我与消息队列的八年情缘
- Cache learning
- 20字符短域名绕过复现
- 2021 Fujian Vocational College skills competition (secondary vocational group) network security competition assignment
- 图论的小技巧以及扩展
猜你喜欢

你不知道的Redis那些事,我来详解Redis底层数据结构

PyQt5快速开发与实战 4.10 窗口绘图类控件

51单片机内部外设:实时时钟(SPI)

PyQt5快速开发与实战 4.9 对话框类控件

Cy3 fluorescent labeling antibody / protein Kit (10~100mg labeling amount)

catch all in one draft! Introduction to 10 data visualization software
C language explanation series -- understanding of functions (5) function recursion and iteration

解决ip地址访问末位奇数通偶数不通,或者偶数通奇数不通的问题(云加密机连接云服务器时遇到的问题,全程记录,希望能给大佬们灵感)

Possible causes of index failure
In depth understanding of redis master-slave principle
随机推荐
知乎数据分析训练营全能班
Another fire broke out in Samsung storage factory!
你不知道的Redis那些事,我来详解Redis底层数据结构
2022/3/11 考试总结
Jeninkins offline deployment
你想被开除吗?来看看程序员「离职小技巧」吧
C语言详解系列——函数的认识(5)函数递归与迭代
PyQt5快速开发与实战 4.10 窗口绘图类控件
When type= 'number' is set in the input field, remove the up and down buttons behind it
Invest 2.2 billion dollars! Geke micro 12 inch CIS manufacturing project settled in Shanghai Lingang
Android 11 security policy and permission management
SSM整合流程
Data warehouse project is never a technical project
Redis learning
Summary of exam on May 17, 2022
Kubernetes binary deployment - theoretical part
2021 Fujian Vocational College skills competition (secondary vocational group) network security competition assignment
Jstack stuff
联发科携手三星推出全球首款支持Wi-Fi 6的8K电视
The ASML lithography machine purchased by SMIC international entered the factory smoothly, but it is not a non EUV lithography machine!