V2EX 09月12日
技术框架的演进与创新:从共享主机到模块化设计
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文作者分享了其在技术领域,特别是Java框架开发中的实践与思考。文章追溯了作者从2009年起在共享主机环境下开发网站遇到的挑战,激发了其设计一个能在低配服务器上安全高效运行的框架的初衷。随后,作者介绍了2017年为解决团队协作中图片共享和软件安装限制而开发的即时聊天工具smalltalk,该工具已集成AI并开源。文章重点阐述了作者近年重新审视的Java框架,其模块化设计理念被认为可能比Spring Boot更具前瞻性,使其在低配设备上运行Java服务方面具有独特优势,并解释了这种设计的出现并非“重复造轮子”,而是源于实际需求和对现有方案的改进。

💡 **早期开发挑战与框架设计初衷:** 作者在2009年使用Java开发网站时,面临共享主机环境资源有限、限制多、安全管控严格等问题,导致Struts Spring Hibernate等框架难以部署。为了在低配服务器上实现网站的安全性与成本效益,作者因此萌生了设计一个全新框架的想法,旨在克服这些限制,实现“不妥协的安全”和“节省成本”。

🚀 **即时通讯工具Smalltalk的诞生与演进:** 2017年,为解决团队协作中图片共享不便和软件安装审批困难的问题,作者基于本地电脑开发了名为smalltalk的即时聊天工具。该工具最初代码量不大,支持匿名群聊,可随启随用,不留痕迹。如今,smalltalk已集成AI功能,代码量翻倍,并已开源在GitHub上,供有需求的用户使用。

⚙️ **模块化设计的先进性与独特优势:** 作者重新审视的Java框架,其核心亮点在于模块化设计思想,允许根据需求启动特定模块。这一点被认为可能比Spring Boot更具前瞻性,因为它天然支持在旧手机、树莓派等低配设备上运行Java服务,这是它与其他框架的主要区别之一,解决了在资源受限环境下部署Java应用的技术难题。

做技术的都懂,不要重复造轮子。人生苦短,何必自讨苦吃呢?但是,这个世界上,重复的轮子仍然非常多,我相信绝对不是平白无故的。

我在 2009 年左右,用 Java 做了一个网站。这个网站一直运行到如今。可能感兴趣的人不多,我就不贴上来了。

但是,早先的服务器特别难用,尤其是那种 Share hosting 的环境,限制非常多,内存容量也是十分有限。当我尝试使用 Struts Spring Hibernate 搭建项目并部署上去以后,发现根本就跑不起来,还有各种依赖权限等限制,由于是共享主机不可能找服务商帮我定制化配置服务器环境。有相同经验的朋友,应该会有同感。很容易理解,像 Share hosting 这一类的主机服务,一方面是共享主机资源。不可能有给个别用户的定制空间,除非你是 Dedicated 服务器。另一方面就是严格的安全管控。

所以,我就狠了一下心,设计了这个框架。目的是实现在低配的服务器基础设施上安全不妥协的情况下,让网站跑起来,同时还能节省成本。这就是我开发这个框架的最初动机。

2017 年,因为当时公司都还是在用 Communicator ,根本不支持共享图片,截图,只能发文字,这在团队协作方面很不方便,尤其对于测试人员报告 bug 的时候,无法及时全面的反馈信息。而且 IT 安全原因,软件安装通常需要走一个审批流程,甚至最后不允许安装。所以,就地取材,基于它写了一个可以运行在本地电脑上的即时聊天工具,smalltalk ,当时总四百行代码。代码还能找到:https://github.com/tinystruct/smalltalk/blob/master/src/main/java/custom/application/v1/smalltalk.java 不过现在的版本功能更多,代码量也跟着翻倍了。这个软件可以在本地电脑上跑,不带数据库。支持匿名群聊,随启随用,用完就关,不留痕迹。当前已经跟 AI 集成了,代码写得有点儿乱,想用的,就凑合用吧。

回到主题。起初设计这个框架的时候,并没打算把这个框架开源,只是写了一些样例代码放在了 GitHub 上,发现还挺受欢迎的。由于比较忙,后来就搁置了。2021 年的时候,我把框架代码翻出来重新再看了一下,发现设计的还挺有意思。最重要的是,它的模块化设计思想。可以根据需要,启动特定的模块。从某种角度来看,可能比 Springboot 还先进,毕竟 Spring boot 是不支持模块化的。正因如此,它就天然支持在旧手机、树莓派等低配设备上跑 Java 服务。这应该就是它跟其它框架的区别之一。

(未完待续)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Java框架 模块化设计 共享主机 低配设备 技术实践 开源 Java Framework Modular Design Shared Hosting Low-spec Devices Technical Practice Open Source
相关文章