Solo 从设计到实现

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

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

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

  • Solo

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

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

    1394 引用 • 9959 回帖 • 499 关注
  • 文档
    55 引用 • 1284 回帖 • 1 关注
  • 设计
    106 引用 • 796 回帖 • 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 回复
请输入回帖内容 ...
融合块、大纲和双向链接
构建你永恒的数字花园
思源笔记是一款本地优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步

推荐标签 标签

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    700 引用 • 1147 回帖 • 464 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    122 引用 • 579 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 493 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 459 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    160 引用 • 1339 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 48 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 508 关注
  • Firefox

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

    7 引用 • 30 回帖 • 494 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    912 引用 • 1447 回帖 • 456 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    190 引用 • 120 回帖 • 1 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    12 引用 • 59 回帖
  • Flume

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

    9 引用 • 6 回帖 • 556 关注
  • danl
    30 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    31 引用 • 24 回帖 • 4 关注
  • 微软

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

    8 引用 • 44 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    44 引用 • 551 回帖 • 405 关注
  • Gitea

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

    2 引用 • 15 回帖 • 4 关注
  • 博客

    记录并分享人生的经历。

    262 引用 • 2367 回帖
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 489 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖 • 1 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    153 引用 • 900 回帖
  • 黑曜石

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

    A second brain, for you, forever.

    6 引用 • 24 回帖
  • 链书

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

    链书社

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

    14 引用 • 257 回帖 • 1 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 538 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    20 引用 • 140 回帖 • 50 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 516 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 5 回帖