Add cars-assemble concept exercise#1035
Conversation
Unlocks if-control-structures and comparison-operators after booleans and numbers, ported from csharp/cars-assemble. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks a lot for your work! New to the PHP track and head first into concept exercise writing. Do you have experience with Exercism approach to concepts, concept exercises and the didact concept behind all this code and files? I tried to get my head around this PR, but I run out of time for today. I hope to find time for the review this weekend. |
|
@mk-mxp Thanks! Take your time with the review, no rush. I’m used to seeing PHP and how it works, because I work with it daily in WordPress. Writing it from scratch has always been harder for me. I’ve been more of an “understand, copy and paste” person. That’s why I’m going through this track myself. Along the way, I thought it could be a good idea to help improve it while I review and reinforce concepts. What’s new for me is Exercism’s approach to concepts, concept exercises, and the docs/meta structure around them. How I built this PR: I used the C# cars-assemble as a close reference (especially the story/instructions), rewrote the PHP docs, and used another existing PHP track exercise as a reference for PHPUnit syntax, since I hadn’t written those tests by hand before. The idea was almost a 1:1 port from the C# track, but I think it may feel too complex for the actual level of the PHP track. For example, the exemplar uses self::, which isn’t taught yet on the PHP track. Would you rather I keep working on this PR and simplify it, or close it for now so I can open a small issue first and rewrite the exercise in a simpler way? My intention is to help improve the PHP track while learning a bit myself. I don’t want to create noise or extra work for you, so I’ll follow your suggestion. Thanks again! |
Just to clarify one point from my previous comment: what’s new for me is not the syllabus idea itself. I get that Exercism teaches roughly one concept at a time, like a skill tree that unlocks as you go. What’s newer for me is the practical side of writing the docs/meta files around a concept exercise. As I said, this was almost a 1:1 port from C#. I could clean it up a bit so the idea stays the same, but making the code a little more beginner-friendly. The class constant / self:: in the exemplar is the part that bothers me most. Happy to wait for your comments and suggestions. I’m here to try and help if I can, not to make things harder. Please feel completely free to tell me if it makes sense for me to keep contributing, or if right now it would be more of a burden than a help. I’d rather ask than get in the way. |
Summary
cars-assembleconcept exercise, ported fromcsharp/cars-assemble.comparison-operatorsandif-control-structuresafterbooleansand the number concepts frompizza-pi.Test plan
bin/configlet generate/fmt/lintPHPUNIT_BIN=phpunit bin/test.sh cars-assemble(18 tests passing)Made with Cursor