开源 Java 博客 B3log Solo 开发团队专访

2023-11-04 02:20

本文主要是介绍开源 Java 博客 B3log Solo 开发团队专访,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

B3log Solo 是一款基于 Java 的开源的博客程序,支持部署在 GAE、BAE、OpenShift等云环境上,也可以运行在标准 Servlet 容器上。当前最新版本为 0.5.5。

官网: http://www.b3log.org/
Github地址: https://github.com/b3log/b3log-solo

为了使大家对B3log Solo有进一步的了解,本期我们采访了B3log Solo的开发团队。

欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如果您和您的团队希望展示创业理念和有趣之处,或者有朋友正在创造这样的价值,请联系我们,发信到blog@csdn.com即可。

B3log Solo是什么?项目的由来?名称的寓意?


B3log Solo 是一个开源的 Java 博客程序,目前可以运行在 GAE、BAE、OpenShift 等云环境上,也可以运行在标准 Servlet 容器上。

项目来自于一个想整合博客与论坛的 想法,通过博客与社区论坛之间内容(文章、评论)的双向同步达到整合的目标,同时也不丢失个人博客的独立性。

2010 年,GAE 开始支持 Java,并且提供了宽裕的免费配额,作为个人博客已经足够用了,所以 B3log Solo 第一个支持的云平台就是 GAE,后来逐渐添加了本地容器、BAE 等运行环境支持。

B3log Solo 这个名字分为两部分:B3log 相当于一个产品前缀,是博客、论坛的缩写(BBS + Blog => B3log);Solo(独奏)是这个博客产品的名字,好比乐手各自所拿的乐器,使用它来演奏不同的声音,最后会合成 交响乐(与社区论坛整合)。

查看 《B3log 构思——一个正在逐渐清晰、实践的创意》了解更多细节吧

B3log Solo基于哪些技术?你们的开发环境是什么?


B3log Solo 是基于 B3log Latke 这个轻薄 Servlet 框架开发的,框架中屏蔽了 GAE、BAE 等 PaaS 云环境与本地 Servlet 容器的差异,使得应用可以在不修改博客实现代码的前提下进行部署移植。前端基于 jQuery 进行开发,编写了一些通用的 jQuery 插件。整个前端具备代码自动合并、压缩,静态资源分离的功能。

项目是使用 Maven2+ 构建的,开发团队里有同学使用 NetBeans IDE 进行开发,也有同学使用 Eclipse。

B3log Solo的性能如何?具体做了哪些优化?


对于个人博客这个量级来说,我觉得 B3log Solo 的性能已经非常不错了

一般情况下,个人博客的更新(写)频率不会非常高,总是读取要大于更新的,所以使用缓存可以有效降低读取响应时间。

B3log Solo 主要在页面与数据两个层次进行缓存:

  • 页面缓存:缓存最终输出到浏览器的 HTML
  • 数据缓存:按查询条件缓存查询过的数据实体

另外,Solo 重点对 GAE 配额使用进行了优化(参考 《GAE 配额优化》),尽量使用 GAE 提供的免费配额。

B3log Solo目前有多少皮肤和插件?如何为B3log Solo开发皮肤、插件?


目前发布包中自带 9 套皮肤、3 个插件,第三方皮肤、插件未统计。第三方皮肤应该还算多,插件倒是比较少,但相信慢慢会丰富起来的。

如果你有兴趣为B3log开发插件和皮肤,请参阅:

  • 插件开发文档(Google Docs)
  • 皮肤开发文档

B3log Solo目前的应用情况?


主要应用场景集中在个人博客这个范畴,也有部分用于团队博客、资讯博客、产品宣传。

累计提交过文章到社区服务器的用户快有 200 人了,相信以后会有越来越多的用户使用 B3log Solo,分享内容到社区。

另外,部署 GAE 版的同学也可以申请 b3log.org 二级域名,使得国内能够方便访问您部署好的博客。


有哪些开发者参与了B3log Solo的开发?你们之间是如何协作的?


B3log 团队目前一共有 5 人,可以在 B3log Index 最下面的时间线以及 团队介绍 Wiki里找到我们。

大多数时候,我们通过 QQ 群进行沟通;开发方面通过 GitHub Issues 进行任务管理;在线语音进行半年计划等。

团队成员介绍:

丁亮:Base 昆明,怀揣理想的码农,有时候很 2。项目创始人,负责B3log系产品计划与实现。



李丽媛:Base 昆明,热爱前端,易怒易悲之人。项目副创始人,负责前端实现。



姚立嶒:Base上海,努力地帮大家写点代码的家伙。为 Latke 框架和技术路线贡献了很多。



王东旭:Base成都,有坚持有想法的帅小伙。负责博客、社区功能实现。



江泽洲:Base杭州,热爱生活,相信积累。负责Wiki文档,产品推广。



其他开发者如何参与该项目?


可以通过如下几种途径参与开发:

  • 第三方皮肤开发:开发好皮肤后联系 Vanessa,她会协助你把皮肤提交到官方库中,以便分享给更多的人。
  • 补丁开发:直接通过 GitHub Pull 提交,审核通过后该补丁会合并到提交的版本中。
  • 加入 B3log 团队:这里有详细的加入指南。

当然,也可以加入 QQ 群 13139268 参与讨论; 提交缺陷/特性请求等方式参与到项目中来

你怎样看待国内的开源环境?


国内程序员的生存压力比较大,整体的开源气氛比较冷淡。相比国外大学,研究机构或者顶级公司机构引导开源项目为多数,国内的开源项目大多数还是靠个体开发者本身的经验进行推动和发展,项目的完整性、质量和持续性都有一定的欠缺。

但也正因为国内的开源比较欠缺,大家聚在一起开发会感觉更平等些(能参与 apache 基金会这类级别开源项目的非常少)。就在这样一个相对轻松的环境下,大家更有机会实现自己的想法,平等的交流,更好的互补学习和拓宽视野,获得一些独特的成就感。当然,也非常期待国内多一些企业来引领开源,成立开源组织,教堂与集市共存。

B3log 未来的发展计划?


  • Solo 将支持更多的云环境,方便用户享用更多的免费云资源
  • 完善 B3log Latke 框架,完善相关文档
  • 提供更好的插件体系,良好应用生态链
  • 开发团队成员 Y 可能会使用 scala 实现 Solo,便捷自定义功能
  • 从社区方面加强独立博客之间的交互
  • 社区开放 APIs




这篇关于开源 Java 博客 B3log Solo 开发团队专访的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342557

相关文章

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

SpringBoot操作MaxComputer方式(保姆级教程)

《SpringBoot操作MaxComputer方式(保姆级教程)》:本文主要介绍SpringBoot操作MaxComputer方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录引言uqNqjoe一、引入依赖二、配置文件 application.properties(信息用自己

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱