- Modern Programming: Object Oriented Programming and Best Practices
- Graham Lee
- 291字
- 2021-05-21 22:06:00
Working with Independent Objects
The traditional way of writing and changing software has led to Continuous Deployment, a principle of automating the pipeline between writing source code and deploying the production artifact in a live environment, with a goal of reducing the time taken for changes to flow through the pipeline while maintaining a high level of quality.
Environments such as Pharo—https://pharo.org/, SqueakJS (https://squeak.js.org/run/#url=https://freudenbergs.de/bert/squeakjs&zip=[Squeak5.0-15113.zip,SqueakV50.sources.zip], or even in their limited ways Swift Playgrounds—https://www.apple.com/swift/playgrounds/ and Project Jupyter—https://jupyter.org/ show that this pipeline can be zero length, and that software can be written directly in the environment it is intended for. The result of a test failure does not need to be a log file served by Jenkins that must be pored over so a fix can be hypothesized in “l(fā)ocal dev”, it can be an opportunity to correct the program running in the live environment and continue (or, at worst, restart) the operation that failed.
This liveness property is not restricted to Smalltalk-like environments or REPLs. Consider the Mach microkernel operating system; any server that is registered to the name server (or, in the case of the HURD, as a translator on the filesystem) is a “l(fā)ive object” that can receive messages from the rest of the system and participate in its behavior. They are also tasks that can be inspected, debugged, changed, restarted, or replaced.
A server application composed of microservices presents similar properties. The “objects” (the running instances of the services) find each other by URL: whatever service is configured to receive HTTP requests at a given route “responds” to the “messages”. Each of these services can be independently inspected, debugged, edited, or replaced.
- 數(shù)據(jù)要素安全流通
- Building Computer Vision Projects with OpenCV 4 and C++
- Libgdx Cross/platform Game Development Cookbook
- 數(shù)據(jù)驅(qū)動(dòng):從方法到實(shí)踐
- 大數(shù)據(jù)架構(gòu)和算法實(shí)現(xiàn)之路:電商系統(tǒng)的技術(shù)實(shí)戰(zhàn)
- 大數(shù)據(jù)架構(gòu)商業(yè)之路:從業(yè)務(wù)需求到技術(shù)方案
- 金融商業(yè)算法建模:基于Python和SAS
- Flutter Projects
- 辦公應(yīng)用與計(jì)算思維案例教程
- HikariCP連接池實(shí)戰(zhàn)
- 數(shù)據(jù)分析師養(yǎng)成寶典
- 大數(shù)據(jù)數(shù)學(xué)基礎(chǔ)(Python語言描述)
- 數(shù)據(jù)挖掘競(jìng)賽實(shí)戰(zhàn):方法與案例
- Access 2010數(shù)據(jù)庫程序設(shè)計(jì)實(shí)踐教程
- 智能與數(shù)據(jù)重構(gòu)世界