Solo 从设计到实现

本贴最后更新于 686 天前,其中的信息可能已经渤澥桑田

本系列文章将介绍 Solo 这款 Java 博客系统是如何从无到有的。介绍期间我们会穿插了一些必要的框架相关原理以及设计考量,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 ❤️

全文在黑客派上按章节分帖子发布,我们会尽量保证文章内容随着项目的更新而更新,如有不清晰之处大家可随时跟帖反馈 🙏

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1378 引用 • 9898 回帖 • 515 关注
  • 文档
    55 引用 • 1278 回帖 • 1 关注
  • 设计
    106 引用 • 795 回帖 • 1 关注
44 引用
solo 用 docker 安装,并用 nginx 配置 https 教程 Solo 登录验证社区账号 Solo 表结构 Solo 拉取 GitHub 仓库和自动备份 2019 年 11 月 17 日深夜有感 Solo 开发指南 Solo 架构理念和约定 Solo 开发环境搭建详细说明(用 MySQL8 数据库,对 Solo 开发指南的环境搭建的补充) Solo 生成导出静态站点 拉取 GitHub 最新的 solo 代码时拉不下来,求解 Solo 错误处理 Solo 安全相关 Solo 跨版本升级 Solo 内置 HTTPS + CDN 文件存储 Solo 导入 Markdown 文章 Solo Markdown 渲染 Solo 标签聚合分类 Solo 自定义链接路由 Solo 发布文章 Solo 登录状态和会话 Solo 源码包结构介绍 Solo 项目简介 Solo 皮肤切换 Solo 从设计到实现后记 如何修改博客端 vditor 的配置? solo 支持 tomcat 吗? solo 博客数据库设计,有人知道吗 Solo v4 计划 Solo 是什么时候开始编写的? b3log/solo 开发者环境 docker 部署? Solo 开发指南 Solo 邮件推送评论提醒 solo-3.3.0 启动项目报错、 SOLO 启动提示请先升级到 3.0.0 谁有 symphony 开发者文档 开源博客系統 Solo v2.9.9 发布,同步 GitHub 仓库 开源博客系統 Solo v2.9.8 发布,支持阿里云 OSS solo 源码看不懂 Java 开源博客 Solo 2.9.5 发布,大量细节优化 开源博客系統 Solo 2.9.6 发布,大量细节优化 开源博客系統 Solo 2.9.7 发布,新皮肤 Jane

相关帖子

优质回帖
  • s7raybird 1 1 赞同

    酷,真的太棒了

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • nuaa123 1

    期待更新。。。

  • vinasis 1

    👍

  • Complexity-Naughty 1

    期待更新。好的经验贴,福利之作👍

  • jully 1

    值得登录赞一个

  • lucky 1

    反馈一下:Symphony 个人中心无法绑定 qq,绑定手机号码收不到验证码

    1 回复
  • 88250
    订阅者 作者

    你 QQ 是不是绑定了其他账号,绑定手机问题已经修复。

    1 回复
  • lucky 1

    好像是,不过这里可以加个提示 😋

  • zjhch123 1

    出书吧

  • vinasis

    坐等😋

  • s7raybird 1 1 赞同

    酷,真的太棒了

  • mikicomo 1

    非常棒啊!

    1 回复
  • yuanyuan0718

    nice

  • niconicocbf

    仰视一波。

  • zjl

    我要仔仔细细 慢慢阅读

  • SeekerGAO

    来学习 😄

  • DarylLiu 1

    啥时候继续更新?

    1 回复
  • 88250
    订阅者 作者

    下周会更新一篇,感谢关注啊。

  • Hanseltu

    赞,向 D 神学习!

  • yhyddr

    写这些都是提前把大纲列好了的吗

    1 回复
  • 88250
    订阅者 作者

    有个大致的大纲就开始写了,边写边改。

  • hsowan

    还会更新吗

    1 回复
  • 88250
    订阅者 作者

    会的 😄

  • 1938316175

    微信图片 20190828105153.png
    你好这里的图片是怎么加上的?

    1 回复
  • Vanessa
    订阅者
    1 回复
  • 1938316175

    我看了,也在网上找了一些博客看了,我发现他们的也是这样,显示不了模型,不知道为啥

    1 回复
  • Vanessa
    订阅者

    操作系统,浏览器,网址发我看一下

    1 回复
  • jenphyjohn
    支持者 订阅者

    学习了

  • 1938316175

    win10 系统,谷歌(73.0),火狐(68.0.2)也试过,我是在本地运行这个项目的 https://github.com/b3log/solo?utm_source=hacpai.com

    1 回复
  • Vanessa
    订阅者

    你 F12 看一下网络,看帮娘是加载慢,还是 404,或是其他的什么错误?

    1 回复
  • 1938316175

    没有报任何错,但是就是没有加载出来,等了很久还是没有,好气哦

    1 回复
  • Vanessa
    订阅者
    1 回复
  • 1938316175

    大神,链接能打开,请求也是 200,我晚点丢到服务器去试试,感觉有毒,不会是我电脑有问题吧~~~
    image.png

    1 回复
  • Vanessa
    订阅者

    我看到有 2 个错误,是错误引起的么?

    1 回复
  • 1938316175

    不是那两个的问题,我把项目打包放上服务器来访问是可以看到的 😂 大佬你真有耐心,谢谢你,不过还是没太明白本地怎么就不能看到

    1 回复
  • Vanessa
    订阅者

    因为我也很想知道你本地为什么看不了,要不清一下缓存,然后对比一下网络请求看看?

  • iwang-peng

    请问大神 我的博客么有自动同步到 github 上是因为什么?

  • LainNetWork

    您好,请问 solo 的插件开发文档有国内版本的吗?文档里的地址是谷歌的,这几天正好梯子炸了上不去....

    1 回复
  • 88250
    订阅者 作者

    建议别看了,浪费时间 🤣 B3logSolo 插件机制.zip

    1 回复
  • LainNetWork

    😂

  • 614756773
    捐赠者

    更想看一看你的 IOC 容器和 Latke 的实现,有文档吗 D 大

    1 回复
  • 88250
    订阅者 作者
  • 614756773
    捐赠者

    收到,多谢 D 大 👍

  • vinasis

    求 D 大多更新点 😂

    1 回复
  • 88250
    订阅者 作者

    好的,忙完这一头就更新,多谢关注。

  • kangaroo1122
    捐赠者

    D 大,能不能说说数据库表结构自动创建是怎么弄的,或者说涉及到哪几个文件,我也去研究一下实现呢

    1 回复
  • 88250
    订阅者 作者

    从 repository.json 中加载数据库结构,生成建表 SQL 执行,相关代码在 Latke 框架 repository 包下。

    1 回复
  • kangaroo1122
    捐赠者

    好的,谢谢 D 大 😋

  • shidanlo

    点个赞 👍

  • albertjone

    现在 github 上面的仓库没了,是改名字了吗

    1 回复
  • 88250
    订阅者 作者
    1 回复
请输入回帖内容 ...

推荐标签 标签

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    866 引用 • 921 回帖 • 94 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 12 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 548 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 66 关注
  • 一些有用的避坑指南。

    67 引用 • 94 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 506 关注
  • 996
    13 引用 • 200 回帖 • 3 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    118 引用 • 73 回帖 • 342 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    18 引用 • 21 回帖 • 19 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    43 引用 • 83 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    167 引用 • 386 回帖 • 192 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    11 引用 • 52 回帖 • 490 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 2 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 539 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    4 引用 • 7 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    192 引用 • 354 回帖 • 296 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    2 引用 • 15 回帖 • 2 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    105 引用 • 272 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 255 回帖 • 1 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    6 引用 • 23 回帖 • 1 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    16 引用 • 140 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 686 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 458 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    48 引用 • 225 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    86 引用 • 155 回帖
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    47 引用 • 206 回帖 • 531 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 643 关注