4 ms·
> It never ceases to amaze me how anyone can reason through decompiled code. How so? I'm very much so a nascent programmer, but I've learned the most by decomp
by csydas 5y ago
> It never ceases to amaze me how anyone can reason through decompiled code.
How so? I'm very much so a nascent programmer, but I've learned the most by decompiling other's code and seeing what works and what doesn't. When I see good apps, I guess I make the (sometimes specious) assumption that whoever wrote it likely also knows how to write pretty well.
I've also done a ton of troubleshooting at a past support position via decompiler since the Dev Team was sometimes...sparse with details :)
It's one of the things I do like about programming, it's just a big logic puzzle to break down. Sometimes the logic harder to follow, but there is a way to understand it. My biggest mental growths have been just seeing how other people accomplish goals I want to accomplish, and understanding what does and doesn't work well. Especially with major developers, it's really interesting to see how/why they do the things they do as their needs are way different than in-house app needs.
- Noumenon72 5y agoI think you mean "debugger", not "decompiler". To me (who has never done it) "decompiling" is looking through a bunch of hex dumps and code skeletons with all the names replaced by "function_3" and "var_1", because you don't have access to the source or the ability to run a debugger -- only the compiled binary. That's obviously much harder than being able to debug or read the source code with comments (which is already hard).
- csydas 5y agoNope) I mean decompiler. Grab dotpeek from Jetbrains and see what I mean.
- Noumenon72 5y agoI don't have any C# projects to decompile so let me ask you, do you typically use this with projects that have source available so you are essentially attaching a debugger to their source, or are you looking at a bunch of generically named, comment-stripped decompiled functions like I described above?
- csydas 5y agoThe latter. The code was very straight forward in most cases and I just saw the raw logic. Sometimes I was able to get on good terms enough with a Dev to get them to explain their logic, but usually the code stood on its own. But Generically named is not appropriate here, as at least with this job, we had really good devs, and they would get slapped pretty hard for non-intuitive naming. The Dev Leads were very careful about naming schemes and the end result was that it was pretty simple to understand what something was related to. DotPeek also makes a lot of this work __very__ convenient with things like the stack trace explorer and its navigation tooling.