ECE 2524

Introduction to Unix for Engineers

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 (like first and last) but then just use whatever the data file provides for the rest.