recentpopularlog in


« earlier   
[MindOrks] SOLID Principles — explained with examples

S - Single Responsibility Principle: “class should be having *one and only one* responsibility”
O - Open/Closed Principle: “classes should be *open for extension* but *closed for modification*”
L - Liskov’s Substitution Principle: “parent classes should be (able to be) easily *substituted with their child classes* without blowing up the application”
I - Interface Segregation Principle: “*many* client *specific* interfaces are better than *one general* interface”
D - Dependency Inversion Principle: “classes should depend on *abstraction* but not on concretion”
@Article  @Concept  @Comparison  @Example  Software  OOAD  Programming  Design  UnexpectednessUncertaintyAndImpermanence  EncapsulationAndDecoupling 
6 days ago by jslu
SOLID Design Principles Explained: Dependency Inversion Principle with Code Examples
An important detail of this definition is, that high-level and low-level modules depend on the abstraction. The design principle does not just change the direction of the dependency, as you might have expected when you read its name for the first time. It splits the dependency between the high-level and low-level modules by introducing an abstraction "between" them. So in the end, you get two dependencies:

the high-level module depends on the abstraction, and
the low-level depends on the same abstraction.


You could avoid this *compile-time* dependency entirely by using a dependency injection framework, like Spring or CDI, to resolve the dependency at *run-time*.
@Article  @Concept  @HOWTO  @Comparison  @Example  Software  OOAD  Programming  EncapsulationAndDecoupling  UnexpectednessUncertaintyAndImpermanence 
6 days ago by jslu
[Fire CI] The real difference between CI and CD
The scenario we want to avoid is that a faulty commit makes it to the main branch. ... The problem is that your entire team is stuck. All the developers who pulled the faulty commit will spend 5 minutes wondering why it doesn’t work. Several will probably try to find the faulty commit. Some will try to fix the issue by themselves in parallel of the faulty code author. This is a waste of time for your team. The worst part is that repeated incidents fuel a mistrust of the main branch and encourage developers to work apart. Continuous Integration is all about preventing the main branch of being broken so your team is not stuck.


Continuous Delivery is about being able to deploy any version of your code at all times. ... The idea of Continuous Delivery is to prepare artefacts as close as possible from what you want to run in your environment. ... A common misconception is to see CD as a horizontal scalability problem like CI: the faster you can move from code to artefacts, the more commits you can actually process, and the closer to the ideal scenario you can be. But we don’t need that. Producing artefacts for every commit and as fast as possible is usually overkill.
@Article  @Concept  @Comparison  Software  Engineering  SourceCodeManagement  Teamwork  Productivity  Integration  InterpersonalCommunication  TDD  AttentionManagement  Feedback-receiving  Balance  Scalability  Trustworthiness  GroupActivity 
9 days ago by jslu
metablog: What Alan Kay Got Wrong About Objects
So of course Alan is right after all, just not about objects and messages, which are too specific: "ma", or "interstitialness" or "connector" is the big idea, messaging is just one incarnation of that idea.
@Article  @Concept  @Comparison  DistributedSystem  Software  Scalability  InterpersonalCommunication  DataSync  OOAD  History 
19 days ago by jslu
[akichy][筆記] 如何用 Kindle 閱讀 Kobo(樂天)電子書檔案
其實這主題蠻多人都有寫過,但我自己在查資料時發現並沒有完整步驟的教學,所以答應朋友要來寫這篇文章。個人覺得導入 Kobo 電子書檔案的方式完美地解決了 Kindle 中文書不夠的缺點。
@Article  @HOWTO  Book  Software  KnowledgeManagement 
24 days ago by jslu
FPGA design for Software Engineers // Walk N' Squalk Coding Blog
Over the last few years I’ve gotten more interested in electronics and FPGA design. I’ve also noticed that a lot of other software folks seem interested in doing the same, but often don’t know where to start. So, I think I have some interesting advice for software engineers that feel like dipping their toes into the hardware world from the point of view of a software engineer.

In this post I’ll go over FPGAs in general, the basics of the Verilog language, simulating a design and deploying it to an inexpensive TinyFPGA-BX board.
@Article  @HOWTO  @Reference  @Concept  Electronics  Hardware  Design  Software  Programming  Engineering  Tutorial 
7 weeks ago by jslu
[Stackify] Rack Mini Profiler: A Complete Guide on Rails Performance
I’ll show you how to install the gem, add some supporting tools, and use the profiler to illustrate what’s going on inside your app. I’ll keep the code simple so we can focus on the profiler features.
@Article  @HOWTO  @Example  Ruby  Software  Performance  Engineering  Tutorial 
9 weeks ago by jslu
Conventional Commits
The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.
@Article  @HOWTO  @Example  Software  SourceCodeManagement  Teamwork  Automation  Productivity  HabitRoutineAndPattern  InterpersonalCommunication 
10 weeks ago by jslu
[BigBinary] Preload, Eagerload, Includes and Joins
Rails provides four different ways to load association data. In this blog we are going to look at each of those.
@Article  @Concept  @Comparison  @HOWTO  Rails  Database  Performance  HabitRoutineAndPattern  Tutorial 
september 2019 by jslu
[ihower] 深入Rails3: ActiveSupport::Concern
ActiveSupport::Concern 是 Rails3 做 Modularity 的一個重要的小工具。他的任務是讓管理 modules 之間的 dependencies 變得容易。
@Article  @HOWTO  @Concept  @Example  Ruby  Software  OOAD  HabitRoutineAndPattern  Plug-in  MetaProgramming 
august 2019 by jslu
[Aeon Ideas] Why speaking to yourself in the third person makes you wiser
It’s likely to cause you to become stuck in the rut of your own thoughts and immersed in the emotions that might be leading you astray. Certainly, research has shown that people who are prone to rumination also often suffer from impaired decision making under pressure, and are at a substantially increased risk of depression. ... this small change in perspective can clear your emotional fog, allowing you to see past your biases.
@Article  Self-awareness  Consciousness  Decision-making  Emotion  @HOWTO  PerspectiveAndFraming  Problem-solving  CognitiveBias  Wisdom 
august 2019 by jslu
Object-Oriented Programming  —  The Trillion Dollar Disaster 🤦
This post sums up my first-hand decade-long journey from Object-Oriented to Functional programming. I’ve seen it all. Unfortunately, no matter how hard I try, I can no longer find use cases for OOP. I have personally seen OOP projects fail because they become too complex to maintain.
@Article  @Concept  Functional  OOAD  DataSync  Simplicity  Productivity  Problem-solving  Software  Programming  Language  Java  Elixir  EncapsulationAndDecoupling 
july 2019 by jslu
[每日頭條] 大多數國家的現行法律制度,大致可以分為兩個系統

(1)習慣法系(Common Law),又稱不成文法系、普通法系、英美法系等。它源於英國的法律制度。以傳統導向為主,重視習慣和判例,假使沒有特殊的判例或法令,習慣法往往由法官自行裁定。 ...

(2)成文法系(Code Law)。又稱為大陸法系。其判決基礎大致都有可供依據的法律條文,而不是依賴判例和法官解釋。在實行成文法的國家,明確的法律條文是非常重要的,而且其法律條文要能包括所有可能的法律事實和狀況。由於成文法系國家不依據以前的裁決,因此同樣的法系,因不同的用意,將產生解釋上的偏差。
@Article  @Concept  @Comparison  Law  HabitRoutineAndPattern  MeaningManagement  ConflictResolution 
june 2019 by jslu
[端点星] 贸易战的本质问题是什么
美国只是为了自己的利益而已:自由贸易、市场经济符合美国和美国人民的利益。而中国人民、中国政府也有各自不同的利益。我们在说 “中国” 的时候,要注意说的是 “中国人民”,还是 “中国政府”。在 “三零二不一允许” 的问题上,美国利益和中国人民利益在原则上、在绝大多数细节上是一致的,而中国政府利益和中国人民利益则未必是完全一致的。

“三零二停一允许”,不是 “不平等条约”,恰恰是让中国抓住机遇,“第二次入世” 的绝好机会,其意义不亚于又一次改革开放。如果实施之后,市场将变得更加开放,我们获得真正的市场经济地位,在国际上得到最优惠的贸易环境,在国内,人民和民营经济获得国民待遇,而政府则要让出一部分权利和利益。这是要付出的代价。

而既得利益者非但不愿意放弃权力和利益,还要把本该属于人民的权利和利益作为 “代价” 去牺牲。“开放” 意味着失去经济管控权力和权力衍生的利益,才是中国不能接受 “三零二不一允许” 的真正原因。
@Article  InternationalTrade  USA  China  Economics  Politics  Business  FreeMarket  IntangibleAsset 
may 2019 by jslu
[TechBridge] 循序漸進理解 HTTP Cache 機制
前陣子在研究跟 HTTP Cache 有關的一些東西,看得眼花撩亂,不同的 Header 愈看愈混亂,像是 Pragma, Cache-Control, Etag, Last-Modified, Expires 等等。找了許多參考資料閱讀之後才有了比較深刻的理解,想說若是從一個比較不同的角度來理解 Cache,說不定會比較容易了解這些 Header 到底在做什麼。

在之前查的資料裡面,很多篇都是逐一解釋各個 Header 的作用以及參數,而我認為其實參數講多了容易造成初學者混淆,想說怎麼有這麼多奇怪的參數,而且每一個看起來都很像。所以這篇文章嘗試一步一步藉由不同的問題來引導出各個 Header 使用的場景以及出現的目的。
@Article  @Concept  @Comparison  @Example  Cache  WebHosting  WebApp  Software  DataSync  Scenario  Productivity  Tutorial 
april 2019 by jslu
[Car2TW] 自辦汽車進口難不難?自己如何進外匯車呢?找專辦外匯車代辦公司代辦進口車回台灣划算嗎?美國買車車價划算眉角有哪些?自辦外匯車費用多少錢?car2tw收費多少錢?進口車代辦公司
@Article  @HOWTO  @Reference  Car  InternationalTrade 
april 2019 by jslu
[MONEY錢雜誌] 10分鐘搞懂債券殖利率
想知道你買的配息債券基金是否有獲利,就一定要了解債券「殖利率」的算法及其與「配息」的關係,還可進一步反推得出合理的市場價格,讓投資更穩健。 ... 如果上述企業在發行這批債券時,未來市場利率有上漲趨勢,發售時就有可能會按面額10萬元打折出售,假定是以9萬元出售,這種情形叫做折價發售。這一來殖利率就不一樣了。 .. 年化殖利率..就不等於票載利率了,而是比較高。 ... 相反的,如果債券發售時未來市場利率有下跌的趨勢,就有可能以高於面額10萬元的價格出售,假定是以11萬元出售,這種情形叫做溢價發售。
@Article  @Concept  @Comparison  @Example  Bond  InterestRate  Finance  Tutorial  Investment 
march 2019 by jslu
你肩膀痛嗎?為什麼肩膀容易受傷疼痛? | 好痛痛醫療、運動資訊站
@Article  @Concept  @Graph  Health  Tutorial 
march 2019 by jslu
[CalliCoder] Java CompletableFuture Tutorial with Examples
Java 8 came up with tons of new features and enhancements like Lambda expressions, Streams, CompletableFutures etc. In this post I’ll give you a detailed explanation of CompletableFuture and all its methods using simple examples.
@Article  @Concept  @Comparison  @HOWTO  @Example  Java  DataSync  Functional  Software  Programming 
march 2019 by jslu

Copy this bookmark:

to read