Skip to content

Instantly share code, notes, and snippets.

View mcfriend99's full-sized avatar

Ore Richard Muyiwa mcfriend99

View GitHub Profile
@mcfriend99
mcfriend99 / ddd.md
Created May 20, 2025 21:41 — forked from zsup/ddd.md
Documentation-Driven Development (DDD)

Documentation-Driven Development

The philosophy behind Documentation-Driven Development is a simple: from the perspective of a user, if a feature is not documented, then it doesn't exist, and if a feature is documented incorrectly, then it's broken.

  • Document the feature first. Figure out how you're going to describe the feature to users; if it's not documented, it doesn't exist. Documentation is the best way to define a feature in a user's eyes.
  • Whenever possible, documentation should be reviewed by users (community or Spark Elite) before any development begins.
  • Once documentation has been written, development should commence, and test-driven development is preferred.
  • Unit tests should be written that test the features as described by the documentation. If the functionality ever comes out of alignment with the documentation, tests should fail.
  • When a feature is being modified, it should be modified documentation-first.
  • When documentation is modified, so should be the tests.
@mcfriend99
mcfriend99 / IntroVideoView.java
Created August 22, 2018 00:28 — forked from JoaquimLey/IntroVideoView.java
A simple VideoView subclass that displays in full screen while keeping the aspect ration
/**
* Subclass of VideoView to enable video scaling
* CustomAttribute: "scaleType": "normal", "centerCrop", "fill"
* <p>
* Add this stylable:
* <declare-styleable name="IntroVideoView">
* <attr name="scaleType" format="integer">
* <flag name="normal" value="0" />
* <flag name="centerCrop" value="1" />
* <flag name="fill" value="2" />
@mcfriend99
mcfriend99 / UndoBarController.java
Created May 15, 2018 01:14 — forked from benvd/UndoBarController.java
Roman Nurik's UndoBarController, using NineOldAndroids
/*
* Copyright 2012 Roman Nurik
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software