``````javascript``````css```### 组件注册 SPiCa 也拥有类似 Heze 的 AppDelegate 机制。 ```swift // 注册 public CSS 库 public func registerStyle() -> Style {return SharedStyle()} // 注册 public JS 函数库 public func registerLibrary() -> Library {return SharedLibrary()} // 注册 Vuex public func registerStore() -> Store {return SharedStore()} // 注册非 Page 组件 public func registerComponents() -> [Component] {return [ProjectCell.meta,// ...]} // 页面和路由都在这里注册 public func registerRoutes() -> [(String, MetaPage, PageLevel)] {return [("/", IndexPage.meta, 0),// ...]}```### 最后,不打算开源 SPiCa 的重要原因是写起来很麻烦。
开发这个框架的原因是完全不想写HTML,而且觉得Vue的模块管理方式不够高效。在Blog-web开发完成后,我进行了代码统计,Swift原始代码超过1万行,Vue最终渲染输出只有其中的一半。当然它也有它的好处,除了不用写HTML,模块管理更高效之外,还能进行一些代码检查,比如可以找出代码中被错误引用的类。 ![](//cdn.blog.yuusann.com/img/posts/19006_5.png)# 结论 Project Virgo从开始有想法到最后上线用了一个半月的时间,在这一个半月的时间里,我几乎没有利用业余时间做其他事情。 最终它把我的博客变成了PWA,我也从一个即将被时代抛弃、只会玩Bootstrap和jQuery的老派Web开发者,变成了半只脚踏入现代前端的开发者。五年前开始学习Swift 1.1之前,我没做过iOS开发;三年前开始Swift后端开发之前,我没做过后端开发;今年开始SPiCa项目之前,我没做过现代前端开发,对前端的接触也仅限于Bootstrap和jQuery。因为Swift,我逐渐开始学习跨界开发,回头想想,这似乎也是我选择Perfect和Vue的原因。冰冻非一日之寒,循序渐进对于一个初学者来说是如此重要。想用这篇文章来总结一下这三年的Swift服务端开发心路历程。最后,大家学习的时候要好好休息,少熬夜。