/enigma

Turing BE engineering mod1 final project. Models Alan Turing's bombe machine.

Primary LanguageRuby

Enigma

Turing BE engineering mod1 final project

Self Assessment

Functionality:

I completed crack and command line interface so 4 or maybe a little less because crack can take awhile

OOP:

I used inheritance and modules on this project. I think I have identified a pretty good use case for inheritance, enigma is a type of cipher and inherits the abilities of cipher while having more specific abilities that enigma needed to have. Also tried to structure my classes in a logical way of what classes needed to know about each other, spent more time this project on the design phase before I started coding. In terms of the modules, I think if I had more types of ciphers, the modules would make more sense, right now they are might not be necessary to be modules. 3 - 3.5

Ruby Conventions:

I don't have any methods over 10 lines, used hashes where appropriate, think I used the correct enumerables-- got to use some cool ones like .zip and .with_index. 3.5

TDD:

I had to use quite a lot of stubs to get my testing coverage to 100%. I tried to split my methods up that were doing multiple things because step by step methods are easier to read in my opinion and easier to test. 3.5 - 4

Version Control:

Tried to keep my branches named to what part of the project I was working on, there were a couple times I forgot to change branches before starting work on the next parts. Also tried to stay in the habit of leaving detailed comments on my pull requests with the idea that if someone came after me, they could read through my comments and see the logical step by step realization of the project. I think I have over 40 commits and 8 pull requests. So maybe 3.5 - 4