 No Silver Bullet – Essence and Accident in Software EngineeringNo Silver Bullet – Essence and Accident in Software Engineering Mike Ballou“There is no single development, in either technology or management technique, which by itself promises even one order-of- Mythical Man-Month: Essays on Software Engineering • In 1987, authored No Silver Bullet – Essence and Accident in Software Engineering“We hear desperate cries for a silver bullet – something to any.”Sources of Essential Difficulty“Let us consider the inherent properties of this irreducible essence of modern software systems: complexity, conformity, changeability, and invisibility.”Complexity0 码力 | 35 页 | 1.43 MB | 5 月前3 No Silver Bullet – Essence and Accident in Software EngineeringNo Silver Bullet – Essence and Accident in Software Engineering Mike Ballou“There is no single development, in either technology or management technique, which by itself promises even one order-of- Mythical Man-Month: Essays on Software Engineering • In 1987, authored No Silver Bullet – Essence and Accident in Software Engineering“We hear desperate cries for a silver bullet – something to any.”Sources of Essential Difficulty“Let us consider the inherent properties of this irreducible essence of modern software systems: complexity, conformity, changeability, and invisibility.”Complexity0 码力 | 35 页 | 1.43 MB | 5 月前3
 Better Code: Exploring Validityobjects© 2023 Adobe. All Rights Reserved. Substance© 2023 Adobe. All Rights Reserved. Substance Essence© 2023 Adobe. All Rights Reserved. Objects and their values  Objects usually have a meaning that object with _numerator set to 1 and _denominator set to 2 represents the rational number ½.  The essence of a rational in this state is ½.© 2023 Adobe. All Rights Reserved. numerator_ =1, denominator_=2 denominator_=3 1/3 numerator_ =2, denominator_=4© 2023 Adobe. All Rights Reserved. 1/2 1/3 Substance Essence/Value© 2023 Adobe. All Rights Reserved. 460 480 500 520 540 560 580 600 620 x 0.0 0.10 码力 | 117 页 | 6.03 MB | 6 月前3 Better Code: Exploring Validityobjects© 2023 Adobe. All Rights Reserved. Substance© 2023 Adobe. All Rights Reserved. Substance Essence© 2023 Adobe. All Rights Reserved. Objects and their values  Objects usually have a meaning that object with _numerator set to 1 and _denominator set to 2 represents the rational number ½.  The essence of a rational in this state is ½.© 2023 Adobe. All Rights Reserved. numerator_ =1, denominator_=2 denominator_=3 1/3 numerator_ =2, denominator_=4© 2023 Adobe. All Rights Reserved. 1/2 1/3 Substance Essence/Value© 2023 Adobe. All Rights Reserved. 460 480 500 520 540 560 580 600 620 x 0.0 0.10 码力 | 117 页 | 6.03 MB | 6 月前3
 Delivering safe C++{ FILE* f = fopen(p,"r"); // acquire // use f fclose(f); // release } Stroustrup - Essence - Fall'23 21 pointer Something representing a resourceRAII (Resource Acquisition Is Initialization) f(string s) { File_handle fh {s, "r“}; // now: ifstream fh{s} // use fh } Stroustrup - Essence - Fall'23 22 File handle FileOOP (1981 – 1984) • Encapsulation • Well-defined interfaces • Classes garbage collection would not release non-memory resources • why use a “naked” pointer? Stroustrup - Essence - Fall'23 41Resource Handles and Pointers • Use a cheap, safe “smart” pointer • A std::unique_ptr0 码力 | 74 页 | 2.72 MB | 6 月前3 Delivering safe C++{ FILE* f = fopen(p,"r"); // acquire // use f fclose(f); // release } Stroustrup - Essence - Fall'23 21 pointer Something representing a resourceRAII (Resource Acquisition Is Initialization) f(string s) { File_handle fh {s, "r“}; // now: ifstream fh{s} // use fh } Stroustrup - Essence - Fall'23 22 File handle FileOOP (1981 – 1984) • Encapsulation • Well-defined interfaces • Classes garbage collection would not release non-memory resources • why use a “naked” pointer? Stroustrup - Essence - Fall'23 41Resource Handles and Pointers • Use a cheap, safe “smart” pointer • A std::unique_ptr0 码力 | 74 页 | 2.72 MB | 6 月前3
 Six Impossible ThingsDictionary Six Impossible ThingsDictionary- Permutation sort takes us to O(n!) — that’s right, factorial time. O(MG)! In essence, it is an unoptimised search through the permutations of the input values until it finds the one there can be nothing worse than permutation sort in terms of performance? Don’t be so sure. The essence of bogosort is to shuffle the values randomly until they are sorted. Kevlin Henney kevlinhenney 0 码力 | 144 页 | 6.47 MB | 6 月前3
 Conda 23.3.x Documentationinstall:install() implements the logic behind conda create, conda install, conda update and conda remove. In essence, they all deal with the same task: changing which packages are present in an environment. If you plus their dependencies. The rationale behind this optimization trick can be found here. So, in essence, fetching the channel information means it can be expressed in pseudo-code like this: platform = even invoked. The second trick is done within the solver logic: an informed index reduction. In essence, the index (whether it’s current_repodata.json or full repodata.json) is pruned by the solver, trying0 码力 | 370 页 | 2.94 MB | 8 月前3 Conda 23.3.x Documentationinstall:install() implements the logic behind conda create, conda install, conda update and conda remove. In essence, they all deal with the same task: changing which packages are present in an environment. If you plus their dependencies. The rationale behind this optimization trick can be found here. So, in essence, fetching the channel information means it can be expressed in pseudo-code like this: platform = even invoked. The second trick is done within the solver logic: an informed index reduction. In essence, the index (whether it’s current_repodata.json or full repodata.json) is pruned by the solver, trying0 码力 | 370 页 | 2.94 MB | 8 月前3
 Conda 23.5.x Documentationinstall:install() implements the logic behind conda create, conda install, conda update and conda remove. In essence, they all deal with the same task: changing which packages are present in an environment. If you plus their dependencies. The rationale behind this optimization trick can be found here. So, in essence, fetching the channel information means it can be expressed in pseudo-code like this: platform = even invoked. The second trick is done within the solver logic: an informed index reduction. In essence, the index (whether it’s current_repodata.json or full repodata.json) is pruned by the solver, trying0 码力 | 370 页 | 3.11 MB | 8 月前3 Conda 23.5.x Documentationinstall:install() implements the logic behind conda create, conda install, conda update and conda remove. In essence, they all deal with the same task: changing which packages are present in an environment. If you plus their dependencies. The rationale behind this optimization trick can be found here. So, in essence, fetching the channel information means it can be expressed in pseudo-code like this: platform = even invoked. The second trick is done within the solver logic: an informed index reduction. In essence, the index (whether it’s current_repodata.json or full repodata.json) is pruned by the solver, trying0 码力 | 370 页 | 3.11 MB | 8 月前3
 Game Development for Human Beings'assets/allacrost_enemy_sprites/deceleon.png'); 7 this.game.load.image('demonic_essence', 'assets/allacrost_enemy_sprites/demonic_essence.png'); 8 this.game.load.image('dune_crawler', 'assets/allacrost_e image: 'daemarbora'}, 7 {name: 'Deceleon', image: 'deceleon'}, 8 {name: 'Demonic Essence', image: 'demonic_essence'}, 9 {name: 'Dune Crawler', image: 'dune_crawler'}, 10 {name: 'Green Slime' 'Deceleon', image: 'deceleon', maxHealth: 10}, 8 {name: 'Demonic Essence', image: 'demonic_essence', maxHealth: 15}, 9 {name: 'Dune Crawler', image: 'dune_crawler',0 码力 | 472 页 | 8.46 MB | 10 月前3 Game Development for Human Beings'assets/allacrost_enemy_sprites/deceleon.png'); 7 this.game.load.image('demonic_essence', 'assets/allacrost_enemy_sprites/demonic_essence.png'); 8 this.game.load.image('dune_crawler', 'assets/allacrost_e image: 'daemarbora'}, 7 {name: 'Deceleon', image: 'deceleon'}, 8 {name: 'Demonic Essence', image: 'demonic_essence'}, 9 {name: 'Dune Crawler', image: 'dune_crawler'}, 10 {name: 'Green Slime' 'Deceleon', image: 'deceleon', maxHealth: 10}, 8 {name: 'Demonic Essence', image: 'demonic_essence', maxHealth: 15}, 9 {name: 'Dune Crawler', image: 'dune_crawler',0 码力 | 472 页 | 8.46 MB | 10 月前3
 A Seat at the Table - IT Leadership in the Age of Agility“contractor-control paradigm” – is really about trying to make risk go away, when risk really the essence of what we do. Complex Adaptive Systems: Fourth and last, that the business should be thought of0 码力 | 4 页 | 379.23 KB | 5 月前3 A Seat at the Table - IT Leadership in the Age of Agility“contractor-control paradigm” – is really about trying to make risk go away, when risk really the essence of what we do. Complex Adaptive Systems: Fourth and last, that the business should be thought of0 码力 | 4 页 | 379.23 KB | 5 月前3
 C++ in the Developing World, Why it Mattersare already in professional environments and with more powerful hardware, and when time is of the essence in professional environments. • The value proposition of IDEs really shines once you are aware of0 码力 | 8 页 | 177.52 KB | 6 月前3 C++ in the Developing World, Why it Mattersare already in professional environments and with more powerful hardware, and when time is of the essence in professional environments. • The value proposition of IDEs really shines once you are aware of0 码力 | 8 页 | 177.52 KB | 6 月前3
 Dependency Injection in C++entirely on regression A/B testing Testing without Dependency Injection12 Bloomberg What is the essence of Dependency Injection? Data In Interface Results out Capture Synthesize No Side Effects0 码力 | 106 页 | 1.76 MB | 6 月前3 Dependency Injection in C++entirely on regression A/B testing Testing without Dependency Injection12 Bloomberg What is the essence of Dependency Injection? Data In Interface Results out Capture Synthesize No Side Effects0 码力 | 106 页 | 1.76 MB | 6 月前3
共 52 条
- 1
- 2
- 3
- 4
- 5
- 6














