Top tag
Next privilege 2,000 Rep.
Edit questions and answers
1 6 11
~37k people reached

  • 0 posts edited
  • 1 helpful flag
  • 163 votes cast
comment Git Repositories updated
git submodule might be what you're looking for, you have one public repository reference your private repository as a submodule.
comment In Scrum, should developers talk directly to customers (bypassing the PO)?
I have to agree with you that the owner should be the sole point of contact between development and customer. I disagree that making the product owner unnecessary is the reason, or that it's faster to bypass the role. I'll put it this way: on a project with 10 developers you do not want 10 people constantly talking to the customer and negotiating features. First, it annoys the customer, second it takes time away from actually developing. If you get blocked on all tasks because you need more information then you need to fix the requirements capture phase and not try to fix ownership.
comment One project but multiple repositories
Recipe for disaster. You'll spend more time developing and maintaining all these external scripts and keeping their documentation up to date than any imaginary savings. Plus you will have to train every employee in using your custom repositories and suffer the consequences of human error along the way. Lots of hidden costs to custom systems. Automated patching? What happens with conflicts? How are automated patches tested? How do you recover from failures?
comment Is it better to document functions in the header file or the source file?
For library headers where there is no source available maybe add pre and post conditions, etc... to help with testing. Plus add O(n) performance if it makes sense, so library users can choose wisely.
comment How to integrate static analysis tools in a running project
Run the analysis. Save off all the warnings, in a db or custom file maybe. Run the analysis on "new code" and only show warnings that don't match the saved warnings. Start wiping out the saved warnings so they show up in the analysis output?
comment Why do most programming languages have special keyword or syntax for declaring functions?
C has function pointers which, at least slightly, can be regarded as just another value. A dangerous value to mess with to be sure, but stranger things have happened.
comment What is the best practice for designing a system supporting many languages, 1 central dictionary for all languages or seperated dictionary?
I have to agree there with the storage and retrieval. All the multi-language pieces I've worked on work in whole phrases, and those are referred to by some identifier. Whenever the current language changes, a full set of strings is loaded for that language. The runtime (always a GUI for me) simply says something like "use phrase #12 here" and it pulls the entire string.
comment Is the Entity Component System architecture object oriented by definition?
More traction especially since the whole point of components was to get away from intractable OOP hierarchies, good description of the benefit.
comment Correct process for creating builds reliant on 3rd party packages
We agree, I see your perspective in that light now! Yes, we're approaching his unquoted source of "proper programming practices" error from different sides =) OP, please cite where you picked up this proper practice from, no one does it that way because of everything Michael says here. I know that in my past practice, pulling an external update was a major effort and we locked down everyone's submissions while while merging and regression testing before opening the floodgates again. This was done very infrequently. Internally held versions were pulled on every automated build.
comment Correct process for creating builds reliant on 3rd party packages
The base point of something in the repo breaking your local build is backwards, the only thing that matters is that your local build doesn't break anything in the repo. The repo is what everyone gets, what releases are built from, and what your check-ins are tested against. If something is broken it's far better to catch it locally before you update the repo with changes that magically "well it worked on the programmer's machine" but break everyone else that tries to use it.
comment Correct process for creating builds reliant on 3rd party packages
Pulling fresh copies from the chain is common in automated build systems. The problem is not the pulling at build time, but not properly versioning upstream components of the build. If main package version 1.01 requires library 3.14 then pull from the 3.14 set and not a generic "library whatever, it has the same name" set =)
comment How to avoid oscillation by async event based systems?
Just this week I cut out instances of your #1 happening in my remote control app, and I solved it just like you describe. The "trick" I used was to have internal maintenance signals for local state maintenance and external for control inputs. Keeping this arms-length gap stops the feedback loops from forming.
comment How to find out if a tile is being covered by a polygon?
Shrink wrap it, perhaps a modified… that pays attention to the grid size you've chosen?
comment Usefulness of “milestones” in agile development
+1 It's all about the customer. Sometimes the customer is your own marketing department, other teams like ops that need to support your code.
comment Writing my problem solving approach on paper?
That person is wrong. Most use shorthand like UML or pseudocode blocks, but whatever method you use has to work like your mind works and apparently yours needs paper =) I guess Feynman shouldn't be a physicist because he writes equations on the blackboard, right?
comment Refactoring C++
Kind of makes a good case for doing diligent design up front =) Just because agile-like methodologies let you dig 6 foot deep holes at each step to bury yourself in doesn't mean that you should run around digging holes before surveying the land and seeing whether you need holes in the first place.
comment One Scheduler vs. Many Schedulers
The only reason not to, other than clarity and ease of code maintenance into the future, would be that if any kind of conflict can arise from your 1..N schedulers all running their tasks simultaneously then you should not.
comment Loose Coupling in Object Oriented Design
No option for Album being a Track factory, the created Track object which you then fill in through the ITrack interface? Maybe I misunderstand the scope of the question.
comment What's with the aversion to documentation in the industry?
From a business standpoint reams of documentation is costing the company money here and now, when you could instead be working on the next project to make money. That need to always be producing profit is the pressure you feel against "wasting time" writing documentation. Plus, no one ever reads the docs and instead reads the sources because only they are the ultimate authority.
comment How to handle flag in multiple if-else's
The most important take-away from most of the answers below is that simplicity and legibility are far more important than clever tricks when it comes to logical flow and maintaining the code into the future.