Purpose
- 2021.07.15. From now on, I'll not sum-up because of no time to describe.
- 2021.01.07. I am going to share Posts are grouped by date that I read.
- 2020.11.22. I am going to share posts I read with summary.
2022.02.21. ~
Testing
Technique
Principle
Web
Analytics
- https://understandlegacycode.com/blog/demine-codebase-with-exploratory-refactoring/
- https://css-tricks.com/send-an-http-request-on-page-exit/
- https://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/
Ruby
- https://www.reddit.com/r/rails/comments/txny1b/what_are_the_best_resources_out_there_to_learn/
- https://nts.strzibny.name/gem-compare-1.0/
Project
Web Accessibility
2022.01.07. ~
Security
- https://incolumitas.com/2016/06/08/typosquatting-package-managers/
- https://shopify.engineering/fixing-dependency-confusion-ruby-applications
Test
- https://testing.googleblog.com/2021/04/mutation-testing.html
- https://testing.googleblog.com/2021/06/how-much-testing-is-enough.html
Interview
Event Streaming
Scaling Productivity
- https://eng.lyft.com/scaling-productivity-on-microservices-at-lyft-part-1-a2f5d9a77813
- https://eng.lyft.com/scaling-productivity-on-microservices-at-lyft-part-2-optimizing-for-fast-local-development-9f27a98b47ee
Ruby
- https://www.speedshop.co/2020/05/11/the-ruby-gvl-and-scaling.html
- https://www.bootrails.com/blog/ruby-strftime-short-and-long-story/
Front-end
Css
- https://www.aleksandrhovhannisyan.com/blog/writing-better-css/
- https://web.dev/css-is-and-where/
- https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
2021.11.01. ~
Rails Tips
- https://macarthur.me/posts/conditionally-rendering-templates-in-rails
- https://www.hexdevs.com/posts/learn-ruby-best-practices-with-one-exercise/
- https://rubyreferences.github.io/rubychanges/3.0.html
- about update
- csv
Distributed System
- https://aws.amazon.com/builders-library/avoiding-fallback-in-distributed-systems/
- https://medium.com/google-cloud/understand-cloud-load-balancer-like-a-senior-engineer-d4f55f3111fc
- https://zonito.medium.com/everything-about-load-balancer-with-cheat-sheet-64b351f0f7b3
Performance
- https://brunosutic.com/blog/async-ruby
- https://blog.peterzhu.ca/ruby-memcheck/
- https://instagram-engineering.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172
Inspection
- https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
- https://developer.chrome.com/docs/devtools/recorder/
- https://www.hexdevs.com/posts/code-quality-ruby-on-rails/#rails-code-quality-checklist
Upgrade
Etc
- https://dev.to/vitaliipaprotskyi/what-does-class-self-actually-do-in-ruby-2on1
- https://betterprogramming.pub/avoiding-premature-software-abstractions-8ba2e990930a
- https://www.figma.com/blog/realtime-editing-of-ordered-sequences/
- https://v8.dev/features/top-level-await
- https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/
- https://daedtech.com/how-software-groups-rot-legacy-of-the-expert-beginner/
- https://blog.codinghorror.com/we-hire-the-best-just-like-everyone-else/
- https://csstracking.dev/
- https://nystudio107.com/blog/the-css-background-image-property-as-an-anti-pattern
2021.09.01. ~
Ruby upgrade guide
Tips for PS
Rewrite legacy systems with no downtime
Caching strategy
SOLID
- https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
- https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start
Maximize developer productivity
- https://shopify.engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity
- https://shopify.engineering/shopify-monolith
- https://thoughtbot.com/blog/rubocop-custom-cops-for-custom-needs
Rails upgrade guide
- https://shopify.engineering/upgrading-shopify-to-rails-5-0
- https://shopify.engineering/living-on-the-edge-of-rails
Ruby internals
Code smell
- https://www.codewithjason.com/bloated-rails-active-record-models/
- https://www.codewithjason.com/used-intelligently-rails-concerns-great/
- https://signalvnoise.com/posts/3372-put-chubby-models-on-a-diet-with-concerns
To optimize performance for analytics
Software Test
Package Design Principle
Software Architecture
- https://karandhillon95.medium.com/the-morning-after-syndrome-4e49096156ed
- http://blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html
Philosophy of Software Design Series
- https://csruiliu.github.io/blog/20201115-a-philosophy-of-software-design-I/
- https://csruiliu.github.io/blog/20201218-a-philosophy-of-software-design-II/
- https://csruiliu.github.io/blog/20201221-a-philosophy-of-software-design-III/
- https://csruiliu.github.io/blog/20201222-a-philosophy-of-software-design-IV/
2021.07.27. ~
- https://azeynalli1990.medium.com/software-architecture-cheat-sheet-for-daily-usage-9923922ea75b
- https://eng.uber.com/postgres-to-mysql-migration/
- https://semaphoreci.com/blog/what-is-canary-deployment
- https://www.mail-archive.com/[email protected]/msg86235.html
- https://www.codeproject.com/Tips/1080308/An-Introduction-to-Integer-Compression
- https://www.nngroup.com/articles/response-times-3-important-limits/
- https://sorbet.org/blog/2021/07/30/open-sourcing-sorbet-compiler
- https://blog.nelhage.com/post/reflections-on-performance/
- https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/
- https://www.mongodb.com/blog/post/what-about-durability
- https://en.wikipedia.org/wiki/CAP_theorem
- https://codahale.com/you-cant-sacrifice-partition-tolerance/
- https://www.programmersought.com/article/97893470229/
- https://debugged.it/blog/cap-theorem/
- https://mariadb.com/kb/en/query-cache/#limitations
- https://www.logianalytics.com/5-benefits-3-tier-architecture/
- https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/
- https://stackoverflow.com/a/59637676
- http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh
- https://martinfowler.com/bliki/CQRS.html
- https://markgreville.ie/2021/07/23/technical-debt-is-not-debt-its-not-even-technical
- https://nl.devoteam.com/expert-view/monitoring-driven-development-are-you-making-money
- https://world.hey.com/jorge/making-rails-run-just-a-few-tests-faster-2c82dc4b
- https://www.bigbinary.com/blog/rails-6-adds-parallel-testing
2021.07.15. ~
- https://gungor.github.io/article/2021/05/02/tdd-outsidein-vs-insideout.html
- https://betterprogramming.pub/the-art-of-choosing-the-right-index-in-mysql-968461bcabe8
- https://medium.com/airbnb-engineering/building-a-faster-web-experience-with-the-posttask-scheduler-276b83454e91
- https://medium.com/airbnb-engineering/building-an-inclusive-codebase-bbaa2315e5b8
- https://semaphoreci.com/community/tutorials/applying-bdd-to-ruby-on-rails-web-applications
- https://github.blog/2018-09-28-upgrading-github-from-rails-3-2-to-5-2/
- https://medium.com/paypal-tech/pre-mortem-technically-working-backwards-1724eafbba02
2021.07.15.
- Too many articles I read so far so I can't sum-up. I just share now.
- https://blog.saeloun.com/2020/02/10/rails-support-for-if_exists-if_not_exists-on-remove_column-add_column-in-migrations
- https://guides.rubyonrails.org/6_1_release_notes.html
- https://brilliant.org/wiki/cuckoo-filter/
- https://tech.flipkart.com/remodelling-flipkarts-serviceability-data-an-optimization-journey-from-300-gb-to-150-mb-in-memory-5c7e9c38bde
- https://medium.com/building-panorama-education/introducing-memowise-51a5f0523489
- https://www.bugsnag.com/blog/app-stability-overview-dashboard
- https://blog.appsignal.com/category/rails-patterns-and-anti-patterns.html
- https://longliveruby.com/articles/includes-method-in-rails
- https://betterprogramming.pub/why-github-copilot-will-not-change-programming-1bef41f35f6d
- https://developer.chrome.com/blog/renderingng/
- https://levelup.gitconnected.com/how-to-design-a-system-to-scale-to-your-first-100-million-users-4450a2f9703d
- https://medium.com/opendoor-labs/how-we-made-our-maps-10x-faster-e2fa1eaebc65
- https://web.dev/learn/css/
- https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-tree-construction
- https://blog.kiprosh.com/rails-7-activerecord-relation-load_async/
- https://betterprogramming.pub/what-would-be-stack-overflows-future-after-this-1-8b-acquisition-607f50759699
- https://www.computerminds.co.uk/articles/class-naming-javascript-development-drupal
- https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
- https://blog.close.com/saas-startups-why-your-free-trials-are-way-too-long/
- https://towardsdatascience.com/gpt-3-scared-you-meet-wu-dao-2-0-a-monster-of-1-75-trillion-parameters-832cd83db484
- https://dev.to/pragativerma18/confusing-terms-in-the-git-terminology-1578
- https://www.reddit.com/r/ruby/comments/nqlywb/yjit_building_a_new_jit_compiler_inside_cruby/
- https://semver.org/
- https://medium.com/google-developer-experts/how-to-pull-request-d75ac81449a5
- https://javascript.plainenglish.io/9-hidden-features-of-chrome-devtools-78856b2a96de
- https://www.bigbinary.com/blog/rails-6-1-adds-invert_where
- and so on..
2021.05.31.
- What Is MJIT in Ruby 2.6 & How Does It Work?
- It explains that MJIT is method based just in time compiler as simple.
- A look at how Ruby interprets your code
- If you do not know about MJIT how it works, read this first. and you are into optimization, next up is Tail Call Optimization in Ruby
- TCO is really intersting to me.
- If you are intersted in algorithm problems, you may know TCO, is because stack overflow is occured in many recursion problems.
- If you do not know about MJIT how it works, read this first. and you are into optimization, next up is Tail Call Optimization in Ruby
- Get back to MJIT, Koichi Sasada's report is intersting "YARV: Yet Another RubyVM". I don't know its copyright so I just share the title.
- Finally, we should know about MJIT. So what?
- The real important thing is Ruby may not be used without any library such as Rails.
- Ultimately, I was wondering if Ruby uses JIT, then RoR performance is better than that without JIT.
- Ruby 3 JIT can make Rails faster Here is helper to solve my problem.
- My conclusion is that we should not use RoR with JIT yet. Because it is unstable. However I think that metric of method usage would be better that it without JIT in the future.
2021.04.29.
- Flaky Tests at Google and How We Mitigate Them
- Most of developers will probabaly be facing flaky test.
- this is about google's story that how they migrate.
- it is saying that system to monitor and for fast solve are important.
- Test Flakiness - One of the main challenges of automated testing
- following post is saying about flaky causes.
- Test Flakiness - One of the main challenges of automated testing (Part II)
- in now, last following post, is saying flaky causes.
- how to solve that and suggest guidelines.
2021.04.08.
- Beware of “service objects” in Rails
- today, I did not read articles about GC. but I was interested in.
- because I misbelieve service object in Rails, as you know too many classes created.
- to break down fat model is good for readability. but too many files incur similar problems.
- anyway, it says service object is not solution.
- and include good links to understand background.
- Don't Create Objects That End With -ER
- AnemicDomainModel
- I used to be hard to understand this. because of unfarmiliar terms.
- but the point is like service object is bad one.
- Enough With the Service Objects Already
- Martin Fowler on Service Objects via the Ruby Rogues Parley mailing list
- How I code without service objects
- What is a Rails model?
- too long, I can not sum-up.
2021.04.04.
- Ruby Garbage Collection Deep Dive: Generational Garbage Collection
- Again, this is saying GC.
- It explains GC generational such as young object and old object. I've not heared ever.
- Anyway, that also include many terms be good.
- I've understood what Minor GC is and Major GC is. However I want to know write barriers how actully works.
- so I did surf using many terms to know it. and finally I found Peter's Adventures in Ruby: Garbage Collection in Ruby.
- intersting! this explains a little about compaction and write barriers in detail. and also include another article Incremental Garbage Collection in Ruby 2.2.
- sum-up, the first article is to summerize about GC, and the second article explains GC in detail using GC and many figures. the final article explains.
- the next step is reading Copying Garbage Collection and understanding ruby GC.start how works.
2021.03.22.
- Ruby Garbage Collection Deep Dive: GC::INTERNAL_CONSTANTS
- Technically, I don't think it that is saying as deep. but it is helpful to understand how GC works in basic.
- In this post, also has good link Visualizing Your Ruby Heap.
- It says Ruby is using page address and its position. it is same idea OS how to manage memory.
- so I remind that I have learned about OS. and I realize why Ruby uses HEAP_PAGE_OBJ_LIMIT as 409.
- Finally, I can read Ruby Garbage Collection Deep Dive: Tri-Color Mark and Sweep.
- so those are not actul helpful coding technique now. but I think that are helpful in the future when I learn new technique.
2021.03.05.
- What does the other user using Ruby thinks of harder test
- Private method tested means to be complicated software and might be violated SRP. It says that to solve method is refactoring. But test would then be test still complicated. Hence says again that could be solved by stub or mock.
- By the way, it may make following question. What are stub and mock? so is it appropriate solution? and in TDD can use that? does?
- Martin Fowler(a.k.a Unkle Bob) introduces what is the unit test? and differences between classical testing and mockist testing.
- It is helpful to understand that to use mock and stub might be appropriate in TDD.
- What I'm saying is that in tranditional TDD, test is only concerned about input and output. However to use stub and mock means that test code knows how such implemented. But mockist testing is allowed mock and stub in test code since unit test must be isolated.
- So, How am I supposed to choose? my answer is that it depends on.
2021.02.01.
- Ruby on Rails about Predicate
- Further article
- It does not post. but it is important to think what rails core developers' think.
- And make a deep think predicate methods.
- Official Ruby FAQ
- However, this post says predicate methods can return true or false. so I'm confused now.
- Finally, I've realized good to use predicate method'd be return only true and false because of usability and for documenting. as you know nil is unexpected value.
2021.01.13.
- Mocking in Ruby with Minitest
- You guys know what the test doubles are? If no, this post explains simple examples.
- Behavior-driven Development
- If you are intersted in to improve test code, would be good to read along with it. I recommend.
2021.01.07.
- How Can We Measure Our Software’s Modularity and Dependencies?
- It makes me to think about modularity via discrete mathematics.
- Since cohesive and coupling are important to maintain, I should use method that explaind by post.
- Microservices Architecture From A to Z
- Microservice architecture is one of the most shared techinique and hot nowdays maybe.
- The post explains how to use simple and detail.
Before
Ruby
- JIT and Ruby's MJIT
- Simple introduction how ruby implemenets JIT. More details are going to be explained another link.
- Ruby 3 is released - The list of Ruby 3 features
- Ruby 3 was released and introduced new features.
- MJIT Support in Ruby 2.6
- Since ruby 2.6, it supports MJIT which is called JIT. JIT of Ruby is too important to optimmize.
- Hidden cost of string indexing in Ruby
- Actually, ruby is not always O(1) to use index of string.
- Refactoring checklist for beautiful Ruby code
- Encapsulating Ruby on Rails views
- The Evolution of Ruby Strings from 1.8 to 2.7
- Fun with Ruby method argument defaults
- Peter's Adventures in Ruby: The Ruby inplace bug
- Currency Calculations in Ruby
- Rails 6.1 deprecates rails db:structure:dump and rails db:structure:load
- Ruby 2.8 adds endless method definition
JS
- JavaScript Interview Questions: Functions
- npm vs Yarn — Choosing the right package manager
- JavaScript Under The Hood Pt. 4: Bind(), Call(), and Apply()
- Avoid These Common JavaScript Mistakes
- Basic of JS.
- Maintainable JavaScript — Throwing Errors
- How to throw error.
- Need to know what the difference between exception and unexcpected situation.
- 4 Reasons to Avoid Using Array.reduce
- Explain how to use Array.reduce clarify
- Frameworks will never be as fast as Vanilla JavaScript
- Explain why Vanilla JS has not been used alone.
Architecture
-
Avoiding Double Payments in a Distributed Payments System
- Using idempotency key which idea is good solution for me now. and to seperate internal logics into three phases using RPC is good. isn't it?
-
- This article makes me to remind what is the important things construct architecture such as network bandwidth and etc..
-
You Aren’t Gonna Need Microservices
- Explain why modern architecture does not need MSA with YANGI.
-
Everything A Developer Must Know About Microservices
- SDLC: Software Development Life Cycle
- SOA vs. MSA
- ESB
- SOAP
-
Modern-Day Architecture Design Patterns for Software Professionals
Data Science
- Understanding ReLU: The Most Popular Activation Function in 5 Minutes!
- Pros and Cons of ReLU
- Backpropagation paper from scratch
- The post generalizes backpropagation using delta rule.
- The Facebook Data Engineer Interview
- Understanding Markov Chains and Stationary Distribution
Basic CS
- Parallelism
Refactoring
- 소프트웨어 개발 3대 원칙 : KISS, YAGNI, DRY
- Korean post is 3 principles of software development.
- 5 Rules to Improve Code Readability
- All of posts about refactoring are going to be read.
- 4 Principles When Refactoring Your Functions
- Four princples when refactoring, but real technology is complicate. so we need to select method empirically.
- 50 Quotes for Better Coding
- 6 Tips to Improve Your Conditional Statements for Better Readability
- The post explains I naturally use method of refactoring if..elsif
- Software Architectural Thinking for Developers [Part 1]
- In my opinion, I don't know what he's saying but it was intersting.
Web
- Prevent unnecessary network requests with the HTTP Cache
- Basic ways to optimize http request cost.
- Back/forward cache
- Bfcache is important for usability. it explains how to use bfcache simple.
- Detached window memory leaks
- Intersting things of Vaninlla JS about memory leak occurs.
- How to View Your Live Localhost From Your Laptop on Your Mobile Device
- Easy way to test mobile web using local server on VSCode.
- Goodbye Nginx, hello Caddy
- Caddy vs. Nginx summary: performanec or usability.
Others
- MVC vs MVP vs MVVM
- The fun fact is most application codes do not use that clear. so just to know what that mean is not important.
- Web Developers Outlook
- From 2019 to 2029, employing web developer will be grwoing 8 percents.
- The XY Problem
- How to question a problem clear.
- THERE'S ALWAYS MORE HISTORY
- Deep dive into the funny histories.
- 3 Books to Improve Your Coding Skills
- Recommended books about Algoirthm, Engineering and Functional Thinking
- 5 Signs of a Senior Developer
- The difference between senior developer and junior developer.