Yik Yak icon
Join communities on Yik Yak Download
I’m not sure what the line between “vibe coding” and “real software development” is, but here’s a subset of about 30 pages of documentation I created before writing a single line of code. It’s SO organized, I’m very happy with it
17 upvotes, 14 comments. Yik Yak image post by Anonymous in Computer Science. "I’m not sure what the line between “vibe coding” and “real software development” is, but here’s a subset of about 30 pages of documentation I created before writing a single line of code. 

It’s SO organized, I’m very happy with it"
upvote 17 downvote

default user profile icon
Anonymous 14w

ur such a nerd. we should date 👉👈

upvote 3 downvote
default user profile icon
Anonymous 14w

And the associated 30ish pages look like this

post
upvote 2 downvote
default user profile icon
Anonymous 13w

how’d you learn this ?

upvote 1 downvote
default user profile icon
Anonymous replying to -> #1 14w

lol happily taken but yes a nerd. Nerds are exhausting to date though we’ll need to talk about math at 3am

upvote 1 downvote
default user profile icon
Anonymous replying to -> OP 14w

cute ☺️

upvote 1 downvote
default user profile icon
Anonymous 13w

Its for my own research for my degree

upvote 1 downvote
default user profile icon
Anonymous replying to -> #2 13w

Years of slow improvements, I learned to code before AI so I knew the fundamentals first. Then AI came out. But AI has major limitations, so you can’t fully rely on it. I feel like I design my code base, using those fundamentals, then ask AI to deal with syntax. I find that AI is great at turning pseudocode into working code, but smart pseudo code makes a big difference. AI usually doesn’t have the context to understand how you want data organized. If you let it, you get really bad drift in —-

upvote 1 downvote
default user profile icon
Anonymous replying to -> OP 13w

—- data structures. To give an example I have this STRING variable with values “one”, “two”, “three” baked into an early version of my code, because AI doesn’t know to use a double for that. But, that aside, if you know exactly what you want to build and how to test it, it’s fantastic. I still write all my code in pseudocode, I just don’t deal with syntax

upvote 1 downvote
default user profile icon
Anonymous replying to -> OP 13w

A few principles: DRY - don’t repeat yourself. It’s preferable to have one centralized function that gets called multiple times to do the same task, as to have many functions that do the same thing Single responsibility terminal functions and MVC format - first, I should mention that there are reasonable times to code in an object oriented manner, and others that are best in a procedural manner. You let the needs of your app define that. But, in either case, you break each task into single —

upvote 1 downvote
default user profile icon
Anonymous replying to -> OP 13w

Discrete steps. A lot of those steps can be repeated. For example. Function 1: Take Out Trash 1. Open door 2. Walk to (dumpster) 3. Discard And function 2: “check Mail” 1. Open door

upvote 1 downvote
default user profile icon
Anonymous replying to -> OP 13w

2. Collect mail 3. Read Mail The step “open door” is a single discrete step both share, so don’t write two door opening functions. If you have one monolith function that does all of that, you’ll never find the shared features you can reuse.

upvote 2 downvote
default user profile icon
Anonymous replying to -> OP 13w

I use “Nested MVC”, which i feel is better suited for MatLab than traditional MVC. That means I have a lot of controllers that coordinate sub controllers and sub sub controllers… but eventually we reach either terminal “model” functions… like 50 lines of code that do one task only. Or a terminal view function that does that one task. Then your controllers are so easy to read and follow. That’s what’s in the Original image

upvote 2 downvote
default user profile icon
Anonymous replying to -> OP 13w

In the figure at the top, the colored text is all controllers. Those do nothing but call other functions. It’s just a list of steps. The highlighted functions are where actual work happens. Green highlights are data initialization, yellow are data processing and-

upvote 2 downvote
default user profile icon
Anonymous replying to -> OP 13w

Pink highlights are data accumulator functions. I also create data array maps like this. So I know the exact data structure I need, and I know when AI didn’t follow my directions. AI is really good at making something that works in the moment but isn’t compatible downstream, so you need to check every single data structure for deviation from the plan

post
upvote 2 downvote