开源 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对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过