- Use
xrepl
when developing outside DrRacket. Set to automatically start up whenever racket is run at command line. racket-mode
for emacs development#lang envy
for environment variable configuration#lang debug
for "printf debugging"#lang sweet-exp
for prettifying requires and provides, or other simple pieces of code where parens are just noise (can be partially used in a file, doesn't need to apply to the whole file)#lang reprovide
for modules that just require and provide other modules to group them together- Use
#lang racket/base
instead of#lang racket
for libraries, packages, and other re-usable pieces of code, to reduce dependencies - Use the
-lib
packages of libraries for applications to reduce dependencies - When designing libraries, avoid documenting and exposing subcollections to allow more flexibility for the library's code to shift around
- When designing libraries, stick non-exposed modules into a
/private
subcollection to make any code depending on internals stick out like a sore thumb - Typed racket where possible, contracts always barring exceptional circumstances
- Use Travis CI with Greg Hendershott's travis ci script for racket
- Use
doc-coverage
to enforce all exports of a library are documented (great if you run the test in CI, contributors will have to provide docs to add features) - Use
cover
with CI and a service like Coveralls or Codecov (support soon!) for test coverage - Use
deprecated
fromscribble/manual
for deprecation warnings in docs - Use
jack-scribble-examples
(once I've stabilized it) for examples in docs - Put new features in a library
foo
in anunstable/foo
collection before moving them into the main collection. This is useful for serious libraries where you care about backwards compatibility
Last active
October 13, 2015 21:16
-
-
Save jackfirth/543d9832ab8b4b1e7029 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment