An address book for the refined hacker
Usage
-
The README contained everything I needed to easily use the program:
It appears that many of the problems earlier reviewers mentioned were resolved, though the run instructions would be clearer in a code block as an actual command example.
-
The program compiles/runs without errors:
Glad to see a sample data file was provided in response to the earlier reviews!
-
The program worked as advertised:
Style
-
The code is cleaning divided into modules and multiple files:
-
Variable and function names are meaningful:
-
Comments are used where appropriate:
While the class and method names were easy to understand use of docstrings would allow for automatic documentation generation.
Philosophy
-
The program most closely follows the
ed-like
interface pattern: -
This choice of pattern is a good one for this application:
-
This program follows the Rule of Silence and Least Surprise:
I would have expected, and it would increase the scriptability, if all paramters could be given in a command, rather than being prompted for them. For example, I would like to be able to run
edit <last name> set_home_phone 555-123-0987
-
This program follows the Rules of Modularity and Composition:
composability could be greatly increased if commands could be given on standard input
-
This program follows the Rules of Representation and Simplicity:
flexibility could be greatly improved if keys were just grabbed from the data file itself. Rather than hardcoding
first
,last
,home
, etc. perhaps define a couple required keys (likefirst
andlast
) but then just use whatever the data file provides for the rest.