iT邦幫忙

software development相關文章
共有 183 則文章
鐵人賽 Software Development DAY 26

技術 所以 Monad 到底哪裡好用了?

在剛接觸 Monad 這名詞時,我相信一定很多人都很好奇 Monad 是甚麼,所以就會開始上網搜尋,然後就會找到下面這個版本,在這個版本中,使用了透明盒子來比喻...

鐵人賽 Software Development DAY 25

技術 Bind, Return and Monad laws

先複習一下上一篇的內容,一個 Monad,就是一種 Moniod ,而且中間有個特別的 operator ,而他,剛好就是我們熟悉的 flatMap 如下: M...

鐵人賽 Software Development DAY 24

技術 Monad: a Monoid in the Category of EndoFunctors

終於要來解釋這句話了,距離上一次出現這句話時,我們都還不知道 Monoid, Category, Endofunctor 是什麼,現在除了 Endofuncto...

鐵人賽 Software Development DAY 23

技術 Natural transformation

Definition 今天又回到 Category theory 的領域了,從一開始提到的 object 之間的 morphism - function,到 C...

鐵人賽 Software Development DAY 22

技術 Type system and nullability

應該很多人都是從 Java 轉到 Kotlin 陣營的吧?不管是面試或是隨意聊天,在我問別人喜歡 Kotlin 的什麼地方的時候,最常聽到的答案就是 null...

鐵人賽 自我挑戰組 DAY 19

技術 Day 19:如何寫一個好的 Pull Request 敘述

如果團隊有提交的範本需要遵守,以團隊的共識為優先。但無論是不是有提交原則,重點就是把標題跟內容寫清楚,讓 Review 的工程師能夠有效率把提交者的程式碼做檢視...

鐵人賽 Software Development DAY 21

技術 Missing features: Persistent data structure and Pattern Matching

上一篇的解答: fun <R> map(transform: (T) -> R): LinkedList<R> { ret...

鐵人賽 Software Development DAY 20

技術 Functional Data Structure

上次的解答: fun <P1, P2, P3, R> ((P1, P2, P3) -> R).curried(): (P1) -> (P...

鐵人賽 Software Development DAY 19

技術 Curried function

前面看過兩次,今天終於要來介紹咖哩(誤)了,坦白說,在我的日常開發中並不會使用到這個概念,所以我沒辦法說服自己說,這是一個很方便的東西,以下到內容是我查閱資料整...

鐵人賽 Software Development DAY 18

技術 Function type - Another Algebraic Data Type

在之前的 Algebraic Data Type 中介紹了加法與乘法,也就是 Sum Type and Product Type,今天再來介紹另外一種 Alge...

鐵人賽 Software Development DAY 17

技術 Composition, Abstraction and Principles

上一篇的解答: fun <D, A> List<Reader<D, A>>.liftReader(): Reader<...

鐵人賽 Software Development DAY 16

技術 Reader Monad

相依注入 - Dependency Injection ,對於 OOP 來說是一個很重要的概念,各框架、語言也都有非常多的函式庫可以用。主流的注入的方法主要有兩...

鐵人賽 Software Development DAY 15

技術 Lenses

今天來介紹點大家不是很常碰到的神奇用法,看看下面這段程式: data class Path(val content: String, val id: Strin...

鐵人賽 Software Development DAY 14

技術 Introduce Monoid

上一篇的解答: sealed class Either<A, B>() { class Left<A, B>(val valu...

鐵人賽 Software Development DAY 13

技術 Algebraic Data Type II

Algebraic Data Type 的 0 與 1 在數學中,我們都知道數字 0 ,0 乘任何數字都是 0 、 0 加上任何數字的話就是該數字本身 ,或是...

鐵人賽 Software Development DAY 12

技術 Algebraic Data Type

Algebra ,也就是代數,大家國小都學過,可以由簡單的加法與乘法組合而成,在 Category theory 中,也有著這樣的概念,甚至可以將這些概念應用在...

鐵人賽 Software Development DAY 11

技術 Introduce Functor

在前面的很多篇中介紹了許許多多不同的“容器”,那這些“容器”對於 Category theory 又有什麼樣的意義?今天就來介紹其中一個:Functor。 Fu...

鐵人賽 Software Development DAY 4

技術 [用舒服的姿勢開發 Python Project] Day 04 - Pyenv 的其他使用方法及原理

Pyenv 其他使用方法 除了上述安裝、解除安裝、在不同 Scope 切換不同的 Python 版本以外,以下還有一些比較特別的使用方法 使用 pyenv sh...

鐵人賽 Software Development DAY 9

技術 More FlatMap : List and Try

今天再來講多一點 flatMap 的例子吧!首先從 List 開始! FlatMap for List 一樣先看例子,以下這個例子的目標是分解句子中的單字,其中...

鐵人賽 Software Development DAY 8

技術 [RxJava] side effect operators and advanced operator

Side Effect Operator 前一篇介紹了 Observable 跟 Try 是如何處理Exception 這個 side effect,那麼可能有...

鐵人賽 Software Development DAY 7

技術 [RxJava] Observable and error handling

上次的解答, fold 在之後還會看到它的,在 functional programming 中是一個常見的 operator: fun fold(succes...

鐵人賽 Software Development DAY 3

技術 [用舒服的姿勢開發 Python Project] Day 03 - Pyenv 基本使用

Pyenv 基本使用方法 安裝 Pyenv (macOS) 安裝 Pyenv (macOS) 需要輸入下面的指令 brew update brew instal...

鐵人賽 Software Development DAY 2

技術 [用舒服的姿勢開發 Python Project] Day 02 - Python 版本管理問題

source: https://imgs.xkcd.com/comics/python_environment.png 以我第一次拿到 macOS 中的...

鐵人賽 Software Development DAY 6

技術 Non-deterministic, side effect and Try

今天要來談談“意外”這件事,沒有人喜歡“意外”對吧?尤其是 PM 或是 QA 的神之手,有時候就是會給你“意外”的操作出一些 bug ,而你又重現不出來時,要怎...

鐵人賽 Software Development DAY 1

技術 [用舒服的姿勢開發 Python Project] Day 01 - 主題介紹、規劃

主題介紹 今天是開賽的第一天,首先想先介紹一下這個主題將會提到哪些內容: 什麼是用「舒服的姿勢」開發 Python Project?我指的是說當要開始開發 Py...

鐵人賽 Software Development DAY 5

技術 Partial function and total function

上一篇的解答: private fun <K, V, R> Map<K, V>.fmap(transform: (V) -> R)...

鐵人賽 Software Development DAY 4

技術 Kotlin collections: List, Map and Set

Kotlin collections: List, Map and Set 上一篇的解答:答案是不一定,如果 Money 這個 class 的其中一個變數是 v...

鐵人賽 Software Development DAY 3

技術 Pure function and immutability

上一篇的解答: infix fun <T, Q, R> ((T) -> Q).pipe(anotherFun: (Q) -> R): (...

鐵人賽 Software Development DAY 2

技術 Function composition and lazy execution

Function composition 回想以前在學校的時候,對於數學函式的第一印象就是一堆 f(x) 跟 g(x) 了,還有他們的組合:f(g(x))。這在...

鐵人賽 Software Development DAY 1

技術 Function type and basic syntax

前言 這系列的文章算是我給自己的筆記,從學習 Functional programming 以來已經也有了兩年了吧!過程中跌跌撞撞,很常發現在跟別人介紹 Fun...