Skip to content

A collection of quality and friendly software engineering resources

Notifications You must be signed in to change notification settings

vinsonchuong/omnibus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

Omnibus

CC0

A collection of quality and friendly software engineering resources

Teams

Congratulations! You’re the technical lead on your next project! But now what? The lead can be responsible for requirements, architecture, communication with clients or managers, or divvying work amongst the team–and that's just what they tell you about ahead of time. We’ll talk about how to oversee the project without losing sight of the day to day, how to motivate your team without overstepping your bounds, and tactics to deal with issues you might not anticipate, but will almost certainly encounter.

Learning Software Development

Welcome to the MDN Learning Area. This set of articles aims to provide complete beginners to web development with all they need to start coding simple websites.

Software Design

"Everybody complains about the weather but nobody does anything about it." Likewise, everyone has an opinion about what good code looks like, but those opinions don't help you create it. This book fills that gap. It explains the process of writing good code, and teaches you to achieve beautifully programmed ends by way of extremely practical means.

Most code is a mess. Most new requirements change existing code. Ergo, much our work involves altering imperfect code.

That's the bad news.

The good news is that every big mess consists of many small ones. Certain small problems occur so frequently that they've been given names, and are collectively known as "Code Smells".

This talk shows how to take a pile of perplexing code, identify the "smells", and surgically apply the curative refactorings. It breaks a messy problem into clear-cut pieces, and proves that you can fix anything without being forced to understand everything.

Theory tells us to build applications out of small, interchangeable objects but reality often supplies the exact opposite. Many apps contain huge classes of long methods and hair-raising conditionals; they're hard to understand, difficult to reuse and costly to change. This talk takes an ugly section of conditional code and converts it into a few simple objects. It bridges the gap between OO theory and practice and teaches straightforward strategies that all can use to improve their code.

Which conveniences do we take advantage of everyday? Which are taking advantage of us?

Objects and functions sure are convenient, so convenient that we do many shortsighted things just because they’re easy.

In-line objects and anonymous functions create a poor signal to noise ratio, making it hard to understand your code.

Learn ways to give confusing things names, focus on what’s important, and write nicer code.

The first principle of evolutionary architecture is to enable incremental change in an architecture over time. This practical guide gives you everything you need to know to get started.

One of the biggest complaints I hear about TDD and unit tests is that people struggle with all of the mocking required to isolate units. Some people struggle to understand how their unit tests are even meaningful. In fact, I’ve seen developers get so lost in mocks, fakes, and stubs that they wrote entire files of unit tests where no actual implementation code was exercised at all. Oops.

Confusion over test doubles starts with what to even call them. You might know them as stubs, proxies, mocks, or spies (but I call them test doubles, because a book you've probably never read declared it to be the most general term). I've spent a decade fascinated by the disconnect between why test double libraries were invented and how they are actually used by teams. What I've learned: their purpose fills a little-known but valuable niche, whereas their appeal addresses a mainstream but self-destructive impulse. If you don't leave this talk with a clearer distinction between tests that ensure safe changes versus tests that promote simple designs, I'll give you your 45 minutes back. Once that groundwork is laid, you'll better understand the characteristics that matter most in a test double library and the nuanced rules that should govern their use. I've found this clarity invaluable for producing valuable tests and maintainable code, and I think you will too.

This talk is about using simple values (as opposed to complex objects) not just for holding data, but also as the boundaries between components and subsystems. It moves through many topics: functional programming; mutability's relationship to OO; isolated unit testing with and without test doubles; and concurrency, to name some.

CSS

CSS Grid Layout will transform the way you design and develop for the web—and I will change the way you grok the spec. Learn to use Grid Layout within a system that includes existing methods to perform the tasks they were designed for—and take advantage of this pivotal moment in the evolution of layout.

In this practical guide, CSS expert Lea Verou provides 47 undocumented techniques and tips to help intermediate-to advanced CSS developers devise elegant solutions to a wide range of everyday web design problems.

Rather than focus on design, CSS Secrets shows you how to solve problems with code. You'll learn how to apply Lea's analytical approach to practically every CSS problem you face to attain DRY, maintainable, flexible, lightweight, and standards-compliant results.

About

A collection of quality and friendly software engineering resources

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages