[Style] getting started
This commit is contained in:
parent
cf3c3a4a7f
commit
dcd0fb7134
19
collects/scribblings/style/correct-maintain-speed.scrbl
Normal file
19
collects/scribblings/style/correct-maintain-speed.scrbl
Normal file
|
@ -0,0 +1,19 @@
|
|||
#lang scribble/base
|
||||
|
||||
@title[#:tag "correct-maintain-speed"]{Basic Facts of Life}
|
||||
|
||||
Write code that is correct; maintainable; and fast. The ordering of this
|
||||
adjectives is critical: correct is more important than maintainable;
|
||||
maintainable is more important than fast; and fast is important to include,
|
||||
because nobody wants to live with slow programs.
|
||||
|
||||
Code is correct.
|
||||
|
||||
Code is maintainable.
|
||||
|
||||
Code is fast.
|
||||
|
||||
The following suggestions are about creating maintainable and fast
|
||||
code. The production of correct code is a project for life, and depends to
|
||||
a high degree on reflection---i.e., thinking about what you are doing and
|
||||
not just doing it.
|
9
collects/scribblings/style/shared.rkt
Normal file
9
collects/scribblings/style/shared.rkt
Normal file
|
@ -0,0 +1,9 @@
|
|||
#lang racket
|
||||
|
||||
; things to be shared among all sections of the style guide
|
||||
|
||||
(require (for-label racket)
|
||||
scribble/manual)
|
||||
|
||||
(provide (for-label (all-from-out racket))
|
||||
(all-from-out scribble/manual))
|
28
collects/scribblings/style/style.scrbl
Normal file
28
collects/scribblings/style/style.scrbl
Normal file
|
@ -0,0 +1,28 @@
|
|||
#lang scribble/base
|
||||
|
||||
@(require "shared.rkt")
|
||||
|
||||
@title{How to Program Racket}
|
||||
@author{Matthias Felleisen, Matthew Flatt}
|
||||
|
||||
@; -----------------------------------------------------------------------------
|
||||
|
||||
Since 1995 PLT has grown from a handful of people who worked on/with the
|
||||
repository to three dozen and more. In addition, Racekt is an open source
|
||||
project, meaning other people study the code in the repository and use it
|
||||
as an implicit guide to Racket programming. To manage the growth of the PLT
|
||||
developer basis and to showcase good Racket coding, every contribution
|
||||
should satisfy certain basic criteria.
|
||||
|
||||
This document spells out these criteria, and it is also a call for
|
||||
improvements and suggestions for additional criteria. Like code, this
|
||||
document lives and benefits from the "many pairs of eyes" effect of open
|
||||
source. Code should be viewed by more than one person; a second person is
|
||||
likely to catch mistakes and problems and hidden bugs. This document is
|
||||
meta-code, and the same ideas apply. If you have suggestions, contact the
|
||||
authors via email.
|
||||
|
||||
@; -----------------------------------------------------------------------------
|
||||
|
||||
@include-section["correct-maintain-speed.scrbl"]
|
||||
@include-section["textual.scrbl"]
|
57
collects/scribblings/style/textual.scrbl
Normal file
57
collects/scribblings/style/textual.scrbl
Normal file
|
@ -0,0 +1,57 @@
|
|||
#lang scribble/base
|
||||
|
||||
@(require "shared.rkt")
|
||||
|
||||
@title{Textual Matters}
|
||||
|
||||
@; -----------------------------------------------------------------------------
|
||||
@section{Indentation}
|
||||
|
||||
DrRacket indents code. Use it. If you wish to be a real friend of PLT, use
|
||||
DrRacket all the time, and do request features and changes for things you
|
||||
don't like.
|
||||
|
||||
Real friends of PLT use DrRacket to write their programs, and they don't
|
||||
override DrRacket's indentation style. They accept it and leave it alone.
|
||||
The resulting uniformity helps guide eyes.
|
||||
|
||||
@margin-note{Okay, okay. We are using emacs to write this guide.} Minor
|
||||
friends of PLT use Emacs and/or vi(m). Nevertheless, these minor friends
|
||||
adjust their chosen editor so that it follows DrRacket's way of indenting
|
||||
code.
|
||||
|
||||
One of the most important disagreements may concern @scheme[if]. So once
|
||||
and for all:
|
||||
|
||||
@(racketmod
|
||||
racket
|
||||
#:file good
|
||||
(if (positive? x)
|
||||
(send rocket-object launch)
|
||||
(redirect (- x)))
|
||||
)
|
||||
|
||||
@(racketmod
|
||||
racket
|
||||
#:file bad
|
||||
(if (positive? x)
|
||||
(send rocket-object launch)
|
||||
(redirect (- x)))
|
||||
)
|
||||
|
||||
Also note that the then- and else-branches are separate entities, and each
|
||||
entity deserves at least one line.
|
||||
|
||||
@; -----------------------------------------------------------------------------
|
||||
@section{Line Width}
|
||||
|
||||
A line in Racket is at most 80 characters wide.
|
||||
|
||||
If you use Emacs to edit, create a line with ";; " followed by ctrl-U 77
|
||||
and "-". Okay, use DrRacket to create such lines by holding down the dash
|
||||
key.
|
||||
|
||||
@; -----------------------------------------------------------------------------
|
||||
@section{Where to Put Parentheses}
|
||||
|
||||
Racket isn't C. Put all closing parentheses on one line.
|
Loading…
Reference in New Issue
Block a user