Giter Site home page Giter Site logo

engineering-best-practices's Introduction

Introduction

Welcome to the XWP Engineering Best Practices. Many engineers before you have started on this same page and gone on to do the best work of their careers.

Audience

The XWP Engineering Best Practices are not intended to teach anyone to become an engineer. Rather, it is our aim to illustrate how to engineer the WordPress enterprise way. Therefore, these best practices are intended for capable engineers that need to get up to speed quickly on how we do engineering at XWP.

Goal

As a company, we strive to provide websites and components that yield a top-notch user experience. In order to improve efficiency, we need to standardize what we use and how we use it. Standardizing our tools, frameworks, libraries, style, version control, and even languages will allow us to better understand the inner workings of someone else's project and produce better solutions ourselves.

As such, our engineers should follow these best practices in all their work. Our best practices are not meant to be restrictive or comprehensive; we value your creativity. The aim is for these documents to provide a strong guidance, not an authoritative direction. It's our hope that these best practices will not only influence our engineers but community members as well.

Philosophy

At the very heart of XWP is content publishing, or user experience. WordPress, we firmly believe, is the best starting point to achieve this. We design and build custom publishing experiences for major companies and brands around the world. Our publishing experiences or websites are tailor-made for our clients and their specific needs.

As such, the content management experience cannot be made to be generic. We don't cut corners when it comes to user experience and interface. We don't take shortcuts that compromise the end experience for the user. We don't distribute pre-packaged, auto-generated user interfaces or components.

While our solutions are complex, we want our code, tools, processes, systems, and practices to be as simple as possible. Simplicity facilitates collaboration as there is a lower barrier of entry. This goes for things like PHP design patterns as well as workflows. We discourage practices such as writing extra levels of code abstraction (wrapping existing API's) as they complicate debugging and add another component that needs to be maintained.

We are constantly challenging ourselves and learning. Knowledge gives everyone a competitive edge. We must all continue to grow and if we stop growing individually or collectively and stop challenging ourselves to improve, we fall behind. For that reason, these documents are not set in stone and will change. Evolving these best practices through contributions is incredibly important to us.

Contributing

Please contribute via pull requests on GitHub or if you're a member of the team you can also draft changes to the GitBook directly. This documentation was originally forked from 10up in 2015 and modified for XWP and then in 2019 was updated and converted to a GitBook. We want to thank those, both at 10up and previous XWP alum, that put the effort into creating these best practices โ€” starting all the way back in 2011. Reinventing the wheel is not our goal, while diverging and maintaining our own set of best practices is. To those that came before us, we salute you ๐Ÿ––.

engineering-best-practices's People

Contributors

aaronjorbin avatar dbarlett avatar derekherman avatar drewapicture avatar elliott-stocks avatar ericmann avatar fuhton avatar hamptonpaulk avatar helen avatar javy- avatar jeckman avatar johnpbloch avatar jonbellah avatar kdo avatar kovshenin avatar lkwdwrd avatar ocean90 avatar paulirish avatar rachelbaker avatar smy315 avatar tddewey avatar thelastcicada avatar thinkstylestudio avatar thoronas avatar tlovett1 avatar trepmal avatar valendesigns avatar westonruter avatar yani- avatar zzramesses avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.