RSpec style guide
git-internals-pdf
RSpec style guide | git-internals-pdf | |
---|---|---|
5 | 22 | |
3,448 | 2,479 | |
0.1% | 0.0% | |
1.0 | 0.0 | |
12 months ago | about 1 year ago | |
HTML | Ruby | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
RSpec style guide
-
The RSpec Book worth reading in 2022?
betterspecs.org is a good resource.
- Learning RSpec
- Best course to learn for 2022?
-
Understanding Rspec Best Practices
Both sites advocate for factories over fixtures (though there is a not clear consensus). With fixtures, test objects are all defined in fixture files with predefined data. Fixtures can be used across tests but modifying an existing fixture can break tests that depend on that fixture. As a codebase grows managing fixtures for all the various states of your object can be difficult. In comparison, factories let you build and configure new objects per test.
-
Free 500+ books and learning resources for every programmer.
Better Specs (RSpec Guidelines with Ruby)
git-internals-pdf
-
What approach helped you to best learn Git?
For me the Peepcode Git Internals book was a great peek under the hood. I went from "Git has a lot of magical incantations" to "Git is pretty simple and I could probably build a version of it".
-
Git as a Beginner
I generally recommend the Peepcode Git Internals book. The first half explains the internals of how Git works, and the second half is a command reference.
- Git book recommendations?
- What Git primitives get SHA-1'd to generate a hash?
-
How well do you guys know Git
Once you get the hang of basic Git operations, you should look into how Git works under the hood. Git Internals helped me a lot on this.
-
⛔ Squash commits considered harmful ⛔
❯ git log --graph --pretty=oneline --abbrev-commit --all * 150c57d (HEAD -> squash-merge) Squashed commit of the following: | * 535b740 (no-squash-merge) Merge branch 'work-branch' into no-squash-merge |/| | * 1836f1c (work-branch) And more | * 4b84cfe Add more |/ * 16660f8 (main) Add more * 02a154b Initial commit ❯ git cat-file -p no-squash-merge tree 58c1fb22faa444b264e98a5ae4c4ddb07be09697 parent 16660f8b1d1538ed1b55d8533b3ee7feb68e474c parent 1836f1c53221ae701a038bf5ae380770ea911665 author Manuel Odendahl 1653304391 -0400 committer Manuel Odendahl 1653304391 -0400 Merge branch 'work-branch' into no-squash-merge * work-branch: And more Add more squash-merges-considered-harmful on squash-merge on ☁️ ttc (us-east-1) ❯ git cat-file -p squash-merge tree 58c1fb22faa444b264e98a5ae4c4ddb07be09697 parent 16660f8b1d1538ed1b55d8533b3ee7feb68e474c author Manuel Odendahl 1653304543 -0400 committer Manuel Odendahl 1653304543 -0400 Squashed commit of the following: commit 1836f1c53221ae701a038bf5ae380770ea911665 Author: Manuel Odendahl Date: Mon May 23 07:11:08 2022 -0400 And more commit 4b84cfe11aa51da994448e602e1bc4cc6083d691 Author: Manuel Odendahl Date: Mon May 23 07:11:03 2022 -0400 Add more * ``` {% endraw %} You can see that save that both {% raw %}`squash-merge`{% endraw %} and {% raw %}`no-squash-merge`{% endraw %} point to the exact same tree. The only changed thing is the commit message, and the missing parent in the squash merge. To read more about the underpinnings of git, I can recommend just experimenting with the git command line, and the following resources: - [Building Git by James Coglan](https://shop.jcoglan.com/building-git/) - [Git Internals by Scott Chacon](https://github.com/pluralsight/git-internals-pdf) ## But the history! But Manuel, you say, the history is so much cleaner! To which I counter that it is actually not. If you want to hide the link to the right parent of the non-squash merge (as it is called, the left parent being {% raw %}`main`{% endraw %} ), all you need to do is to hide it. If you use the command-line or a proper tool, use the option to only show first parents. If you only look at the first parent, and configure your git tool to fill in a full log history of the branch into the merge commit message (I personally use the github CLI {% raw %}`gh`{% endraw %} or some git-commit hooks to do it), the squash merge commit is identical to the non squash merge commit. A favorite {% raw %}`git log`{% endraw %} command of mine to quickly look at the history of the main branch, and create a changelog: {% raw %} ```shell > git log --pretty=format:'# %ad %H %s' --date=short --first-parent --reverse # 2022-05-23 02a154bc4f0fa9bca567676d45d136619c076a95 Initial commit # 2022-05-23 16660f8b1d1538ed1b55d8533b3ee7feb68e474c Add more # 2022-05-23 535b740f42e331175f3766c1374116e329a78f7e Merge branch 'work-branch' into no-squash-merge
-
How should i go about learning git?
I often recommend the Peepcode Git Internals book. The first half talks about how Git works internally. The second half is a "how to use Git" tutorial. I think understanding the internals (which aren't really that complicated) can really help to demystify Git.
-
I was said that I do not know how Git works
Conceptually, Git's not really all that complicated. I always recommend people to read the Peepcode Git Internals book (originally $9, now free): https://github.com/pluralsight/git-internals-pdf/blob/master/drafts/peepcode-git.pdf
-
would pulling make sense here?
Check out this page if you haven't yet (alternatively, direct link to the PDF.) I hear it's all good, but the Understanding Git chapter is the one I'd specifically point you to.
-
Learn the workings of Git, not just the commands(2021)
I still very much recommend the Peepcode Git Internals book.
https://github.com/pluralsight/git-internals-pdf/releases
What are some alternatives?
Rails style guide - A community-driven Ruby on Rails style guide
Crafting Interpreters - Repository for the book "Crafting Interpreters"
Ruby style guide - A community-driven Ruby coding style guide
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
Fundamental Ruby - :books: Fundamental programming with ruby examples and references. It covers threads, SOLID principles, design patterns, data structures, algorithms. Books for reading. Repo for website https://github.com/khusnetdinov/betterdocs
Kalman-and-Bayesian-Filters-in-Python - Kalman Filter book using Jupyter Notebook. Focuses on building intuition and experience, not formal proofs. Includes Kalman filters,extended Kalman filters, unscented Kalman filters, particle filters, and more. All exercises include solutions.
Best-Ruby - Ruby Tricks, Idiomatic Ruby, Refactoring and Best Practices
papers-we-love - Papers from the computer science community to read and discuss.
fast-ruby - :dash: Writing Fast Ruby :heart_eyes: -- Collect Common Ruby idioms.
github-cheat-sheet - A list of cool features of Git and GitHub.
contracts.ruby - Contracts for Ruby.
JavaScript-es6-and-beyond-ebook - A comprehensive, easy-to-follow ebook to learn everything from the basics of JavaScript to ES2020. Read more on my blog https://inspiredwebdev.com or buy it here https://leanpub.com/completeguidetomodernjavascript2020. Get the course here https://www.educative.io/courses/complete-guide-to-modern-javascript?aff=BqmB [Moved to: https://github.com/AlbertoMontalesi/The-complete-guide-to-modern-JavaScript]