Giter Club home page Giter Club logo

programming-guidelines's People

Contributors

cbbrowne avatar emmysteven avatar guettli avatar kb-1000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

programming-guidelines's Issues

Fix grammatical mistakes and typos found in README.md

Hello! ๐Ÿ‘‹๐Ÿป
I wanted to discuss this before opening a pull request.

Your guideline has help me tremendously and want to say a big thank for sharing this information free of charge.
However I found some grammatical mistakes and typos on some segments, and I would love to point out a few with their corresponding corrections.

purpuse this typo can be found under this heading make-a-clear-distinction-between-authentication-and-permission-checks

-- purpuse
++ purpose

immideately this typo can be found under this heading FTUE

-- immideately
++ immediately 

Idempotence is great, since it ensures, that it does not do harm if the method is called twice. this issue is found under this segment idempotence-is-great

-- Idempotence is great, since it ensures, that it does not do harm if the method is called twice.
++ Idempotence is great, since it ensures that no harm is done if the method is called twice.

These are the ones I could spot out for now.
Do I have the permission to effect these corrections and many others and then create a pull request? ๐Ÿ™

Shell scripting

When talking about shell scripting I always point people to https://mywiki.wooledge.org/BashPitfalls - it has a comprehensive list of ways you can destroy a machine with seemingly harmless shell scripting. Might want to give a link to that or at least include some common sense practices (set -eu, [[ over [/test and such)?

PS. Very solid guide. How much time did you spend on it?

Brainstorming: Tags

The current README is way too long. But how to structure it, so that it is easier to read?

I think tags are better than a book-like structure.

This issue is for brainstorming which tags could be usefull.

Feel free to add your ideas.

My simple feedback

I'm misusing issues for a friendly feedback. I agree with you if I can judge at all or I have a similar intuition or believe something could be well-founded (like don't use XY) and the life is short.

a piece of trash in: "Imagine there is be a a Meta"

"Conditionless Data Structures" - Yes. A good example is a donation from "unknown donor" (imagine in a NGO) It allows more clear queries and statistics, but paradoxical more conditions in the code to not allow to update that general "unknown" object by mistake when some information became known later.

Null values: Nulls are also a big problem in Numpy and Pandas. If an integer or boolean field contains a NULL then the column is converted to float numbers, or is invalid without Pandas. Many people consider special rules and values like NaN, -inf, +inf a lapsus in IEEE 754. If a modern float point processor contains such value anywhere in FPU Register Stack then reportedly it still operates twenty times slower until that thrown out.

Constraints x redundancy: I agree. A special case "are historical" data that should be never synchronized, e.g. foreign key to contact on invoice object and a name of subject at the when the invoice was created.

CRD: Delete is also problematic, especially if the object is still used as a foreign key, e.g. a Contact. Update can not be replaced by delete+create then. (The only point where I rather disagree.)

CSV vs Excel: agree. Huge Excel files can be many times slower than the same data in CSV. This can be the only reason to convert, if the same file must be used repeatedly.

Give booleans a "positive" name: That means sometimes to use a default value True (checked box).

Untestable code: I agree: write test or simplify to be testable. I remember my fix to a bug in Django createsuperuser that failed only on Windows if the current user username contained some accent characters. The fix has not been merged because it was essentially untestable (many possible windows versions and regions) The code and fix was simplified to slugify the username only, where everything can either be tested or considered unbreakable.

Don't search the needle...: I like to add a debug condition or debug print to the right place in Django source code in a similar situation. (But maybe I will not know it in next versions and I write to my list: Don't maintain a custom Django db backend :-)

Love your docs (readme friendly to newcomers) !!!
Avoid to get a nerd !!! very important

Thank for sharing this with me.

Mostly everthing is great but

I agree with you on most topics but in terms of learning python could you elaborate a bit more as to why we should study lower level languages such as C?

Also I have found numerous articles and blog post from people that swear by learning vim or emacs instead of a modern IDE which simplifies and almost dumbs down the role of a programmer and over relying on technology for learning aspects of a language.

Would gladly discuss these thoughts because I am trying to understand people's perspective and know what is the appropriate path for a fully learning roadmap.

Design patterns are indeed overrated, I haven't seen a by the book implementation of a design pattern so far, only bastardizations with a prefix attached to them. How can students learn from these and where should we draw the line?

Any tips on to how I can encourage people to bring their own life into programming? Sports, memories, life and passions? Most people I see code like robots and their code is genuinely boring without any imagination or creativity. I can see flavorful code into someone who is passionate about coding and their own past times.

csv

Hi I read your guidelines, lots of things I like, some parts I would have liked to know earlier, some parts I don't understand since I haven't encountered them. Which I take as a good sign, the advice giving has happened before the problem.

Anyway, the one thing I disagree about is csv. I like csv because it's an easy format that I can write and parse myself. Reading Excel directly is better but may not be available.

It also means someone is using excel.

Failure on my part to read the csv means there is either something wrong with the data I need to fix anyway or I didn't understand something or both. All are good if they happen when I read the file, as opposed to when I try to use the data.

Anyway thanks for this text, I'm sure it will be useful in the future.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.