再重寫吧!
故事是從一個小功能開始的:

因為最近開始看一點英文書了。發現要在 直書 / 橫書 之間跳來跳去十分不便,所以想做一個方便一點的功能。

-> 基於文章自動判定 直書 / 橫書 的功能
-> 由於判定未必準確,得做一個設定讓用戶調整
-> 修改源碼時發現 直書 / 橫書 的設定寫到系統上面去了 ( 也就是説要將這個設定分配給每一本書的話,我得新造一個存放這個新設定的位置 )

系統上的設定當然需要保留,但新設定在每本書都不同,所以沒辦法放到系統設定上去。於是我想「隨便調用一個新的 XRegistry ( xml 設定的模組 ) 放進去不就好了?」
$ ls -l Settings/
-rwxrwx---+ 1 penguin penguin    50 Dec 20 11:01 Deathblow.xml
-rwx------+ 1 penguin penguin    62 Dec  6 12:57 Help.xml
-rwxrwx---+ 1 penguin penguin   282 Dec 20 11:00 Layout_BookInfoView.xml
-rwx------+ 1 penguin penguin   209 Dec  8 12:43 Layout_ContentReader.xml
-rwx------+ 1 penguin penguin   422 Dec  8 12:43 Layout_MainPage.xml
-rwx------+ 1 penguin penguin    63 Dec  8 12:43 Layout_NavLPage.xml
-rwx------+ 1 penguin penguin   111 Dec 25 22:32 Layout_StaffPicks.xml
-rwx------+ 1 penguin penguin 11245 Dec 20 11:01 LocalBookStorage.xml
-rwx------+ 1 penguin penguin   193 Dec 20 11:01 ReadingHistory.xml
-rwx------+ 1 penguin penguin    10 Dec 25 17:19 Server.xml
-rwx------+ 1 penguin penguin   162 Dec 25 22:32 Tasks.xml
然而並沒有這麼簡單,Layout_<Page> 是屬於頁面設定,如果放在 Layout_ContentReader 的話,那麼每一本書的設定都要同時放個這個設定裏,然後又要手動將書籤的設定連結在一起,還有 OneDrive 同步等問題……

再説每次做新設定都弄一個 xml 的話維護上會變得困難。現在的源碼連我自己都得花點時間才搞得懂是想做什麼,這樣下去做新功能的成本會越來越高。

説起來我一開始就不該什麼都用 xml 啊,圖方便亂調用 XRegistry 的自己實在太可恨了。

引入 Entity Framework !

Entity Framework 本來是 ASP.Net 的東西,在 2016 年 6 月開始有整合 Sqlite 並做給 UWP 用的 EF Core 1.0。( wenku10 是 2015 年 9 月開始的,所以我做的時候還沒有這東西 )

研究了一下,發現非常適合讓 wenku10 使用。其實我在幾個月前初步嘗試實作了一下:
* | | 5687c26 5 months ago [斟酌 鵬兄] | Using EntityFramework
結果失敗了,發現需要修改的部分屬於底層源碼,一改就要牽一發動全身。於是 migrate-ef 這個 branch 就這麼給刪掉了。

一個禮拜前我又想起 EF Core,越看越覺得這東西超適合的呀!源碼會變得很容易看,流程上的處理也可以簡化,檔案格式也不用我愁了。怎麼想都是好處多多,於是我下定決心,這幾天一直努力修改著……

而且之前的初步整合 ( migrate-ef ) 居然還沒有刪掉 ( 沒刪乾淨),這算是賺到了?
* 4d4b2b8 4 hours ago [斟酌 鵬兄] | Rewrite Book / Volume / Chapter Loaders in Ex-mode  (HEAD -> migrate-ef, origin/migrate-ef)
* 21e3daf 12 hours ago [斟酌 鵬兄] | Simplify Cache Logic for BookEx, Redefine Book Model
* 3c79a40 10 days ago [斟酌 鵬兄] | Added back migration drafts
* 5554721 10 days ago [斟酌 鵬兄] | Renamed library name to GR
*   c3372d8 2 weeks ago [斟酌 鵬兄] | Merge branch 'master' into migrate-ef
|\
* | a9f7d6c 2 weeks ago [斟酌 鵬兄] | Commiting some WIP codes from other machine
| * 32459fd 4 weeks ago [斟酌 鵬兄] | Use everything when we go fullscreen  (origin/master, origin/HEAD, master)
| * 613bd74 4 weeks ago [斟酌 鵬兄] | Removed ReadingAnchors handling
| | *   a873423 3 months ago [斟酌 鵬兄] | Merge branch 'master' into unsigned-master  (origin/unsigned-master, unsigned-master)

重寫的部分雖然很多,但重寫過的地方絶對比之前寫的方式好多了……然後今天終於看到一點曙光了!
tgckpg@DESKTOP-P0HOOGO ~/Packages/60674Astropenguin.wenku8testingchannel_pmxzykgekyr70/LocalState
$ sqlite3 books.db
sqlite> SELECT * FROM Chapters ORDER BY VolumeId ASC, "Index" ASC;
Id          BookId      DateModified         Index       Json_Meta        Title       VolumeId
----------  ----------  -------------------  ----------  ---------------  ----------  ----------
1           1           2017-12-29 12:04:38  0           {"cid":"64902"}  序幕          1
22          1           2017-12-29 12:04:38  1           {"cid":"64903"}  第一章 契約      1
23          1           2017-12-29 12:04:38  2           {"cid":"64904"}  第二章 野心      1
24          1           2017-12-29 12:04:38  3           {"cid":"64905"}  第三章 災厄      1
25          1           2017-12-29 12:04:38  4           {"cid":"64906"}  第四章 戰旗      1
26          1           2017-12-29 12:04:38  5           {"cid":"64907"}  第五章 決斷      1
27          1           2017-12-29 12:04:38  6           {"cid":"64908"}  後記          1
28          1           2017-12-29 12:04:38  7           {"cid":"65101"}  插圖          1
30          1           2017-12-29 12:04:38  0           {"cid":"68079"}  序幕          2
38          1           2017-12-29 12:04:38  1           {"cid":"68080"}  第一章 流轉      2
31          1           2017-12-29 12:04:38  2           {"cid":"68081"}  第二章 預兆      2
32          1           2017-12-29 12:04:38  3           {"cid":"68082"}  第三章 搜索      2
33          1           2017-12-29 12:04:38  4           {"cid":"68083"}  第四章 覺醒      2
34          1           2017-12-29 12:04:38  5           {"cid":"68084"}  後記          2
35          1           2017-12-29 12:04:38  6           {"cid":"68883"}  插圖          2
實在太感動,我不禁寫起文章來了ww
Tag(s): wenku10
Profile picture
斟酌 鵬兄
Fri Dec 29 2017 17:56:54 GMT+0000 (Coordinated Universal Time)
Last modified: Fri Dec 29 2017 18:01:32 GMT+0000 (Coordinated Universal Time)
Comments
No comments here.
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了