ios_architecture_samplecode's People
Forkers
morizotter k-kohey mrsmart00 fisherman08 tikidunpon maeda-kazuya masanorifunaki yoichi8963itoh miyass littlewat y-negi okaka7 yamoridon riscait ykws math-miki blue-monk adventam10 sunakan wada811 struuuuggle viren-proxy masayuki5160 suzuhiroruri sachiko-kame becky3 tiking76 kazutoshiyamamoto handa-h nabeshun0 tsuboyan letitride ohweblog20 riku3 yuya-h-29 daonhat hururuekchapchap k-torishima haguremon ykkd miyamotok0105 matayoshieeeee toshiki-shibata toshiyana pommdau shinohara-san yusakufujita maezawa1234 ymurao4 rymshm mrs1669 nssolmatsubara shxun6934 shsw228 reeen21 i-qbu kokikudo munakata-hisashiios_architecture_samplecode's Issues
DIPのためのインタフェース化
例
takasek:
VCは具体型じゃなくてprotocolとして持とう!
ktanaka117:
DIPの説明を入れるかどうかに寄るので、ちょっと考えていた部分でした。
テストについて触れるなら必須なのですが:thinking_face:
takasek:
やっといて損はない(各章で矛盾が生まれない)とこかなーとは思いましたが、まあ今はそれより初稿なので一旦議論は置きですね!
本と章がずれている
本では 8 章が Flux の章になっていますがサンプルコードは 08 ディレクトリが Clean Architecture になっており 09 ディレクトリが Flux になっています。それ以降の章も本とサンプルコードのディレクトリがずれているようです。
コーディングルール
決めていくと良さそうなこと書き残していきます
インタフェースと具体型のネーミング
_ | インタフェース | 具体型 |
---|---|---|
パターン1 | Hoge |
HogeImpl |
パターン2 | HogeProtocol |
Hoge |
パターン3 | Hoge |
○○Hoge |
参考:
業務系のクラスでインタフェイスの実装クラス名に「インタフェイス名+Impl」って名前をつけるのはダサいよね。 - wildcatsの日記
http://d.hatena.ne.jp/wildcats/20061203/1165135539
GitHubのリポジトリ
の呼び方
論点:
- 各章のコードでバラバラ
- 8章でデータ層としてのexternal interfaceをRepositoryと言いたいけどそれだと名前空間がかぶる
- リポジトリ(名前難しい)には検索したGitHubリポジトリに対しUIで付けるスターの状態(+GitHubリポジトリの内容)を保存するので、GitHubリポジトリリポジ…むむう
Result
型
Result<T> { case success(T), failure }
vs{ case success(T), error }
Result<T>
vsResult<T, E: Error>
vsResult<T, E>
他にも各サンプルコードを横断しながら見て気付いたら追記します
RepositoryのPresenter内での完全な隠蔽
@Danbo-Tanaka
https://github.com/peaks-cc/iOS_architecture_samplecode/blob/master/06/MVPSample/MVPSample/Presenter/RepositoryListPresenter.swift#L20
同じファイルで気になってときがあるので、こちらに投稿させていただきますm(_ _)m
`var numberOfRepositories: Int` で隠蔽するのであれば、 `func repository(at index: Int) -> Repository` にしてしまって、 `var repositories: [Repository]` 自体もP内で完結するようにしてしまった方が良さそうです。
14章のサンプルがビルドできない
14 章の FluxWithRxSwift, FluxPlusExample をビルドするためまず RxSwift をインストールしようとすると
$ carthage update
*** Fetching iOS_architecture_samplecode
Parse error: expected submodule commit SHA in output of task (ls-tree -z HEAD 15/FluxPlusExample/Carthage/Checkouts/iOS_architecture_samplecode) but encountered:
となってインストールできません。
環境は
git 2.20.1
carthage 0.32.0
です。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.