强烈建议 Symphony 抛弃某些固执的过去,拥抱 Spring

本贴最后更新于 1384 天前,其中的信息可能已经时异事殊

强烈建议 Symphony 抛弃某些固执的过去,拥抱 Spring MVC,Spring Boot,Spring Cloud。然后再就是前后端分离。

  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 692 关注

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 前后端分离没必要啊,cms 类的还是模板渲染好一些。移动端对接 api 接口就是了。

    spring 也没必要吧,适用就行,反而还多了依赖限制。

  • 其他回帖
  • fpdan

    Spring 对于 sym 的业务来说太厚重了,Spring Boot 中大量的“没用的”代码(自动配置等方便开发者的配置和大量依赖),分布式也不仅只有 Spring Cloud 一种,Dubbo 也可以,适合自己的才是最好的。

    D 在 https://hacpai.com/article/1403847528022 中写到自己开发的 Latke,用 JSON 做实体,是非常有趣的想法,在我看来破而后立是非常有趣且大胆的尝试。

    固执于一种语言,一种框架,而不是业务本身,反而有些本末倒置了。

    1 回复
    1 操作
    fpdan 在 2020-07-06 13:17:17 更新了该回帖
  • wizardforcel

    并不新颖,就是动态语言的常用做法。

    其实 controller 不怎么修改实体的,多数情况下就是拼接,然后传到 view。

    而且动态语言的哈希表操作更容易,不比对象复杂。

    view 那边因为模板引擎会在 obj.a 和 obj.get('a') 里面选,所以是兼容的。

  • 88250 1 评论

    感谢建议,很高兴能和你讨论这个话题。

    业界主流框架并不是所有项目的唯一选择,我认为使用自研框架更能体现产品的价值,这些不是“固执的过去”,而是对未来的考虑,所以 Latke 框架也是在逐步升级演进的,设计方面尽量考虑降低用户学习上手曲线,不存在高阶复杂的概念,仅围绕 HTTP 协议作为端点发布。

    从 Spring 家族发展史我们可以看到,近 15 年它的发展迅猛,架构用法变化很大,包括一些周边生态项目被废弃。使用 Spring 全家桶的优势是能够快速让大多数人上手,但带来的问题也很明显:难以保证产品质量,依赖项太多,版本兼容上也不可能做到完全融入用户的架构体系。既然还是要用户折腾,那折腾简单的框架不是更容易么?从过去 5 年 Sym 的用户反馈上看,几乎没有人抱怨过框架开发方面难以上手,Latke 本身也没有出现无法支撑应用场景的问题,所以其实并没有足够的理由来支持切换框架。

    前后端分离对于论坛社区类型项目并不是最优解,PC 端和移动端使用服务模板更好一些,如果要提供前后端分离,也是单独走 API 做一个端(多半是在移动端来做,可以是小程序,也可以是 APP 等),但项目主体还是服务端模板优势明显一些。

    总结一下,我们的目标是做好一款用户体验优秀的现代化社区论坛系统,技术只是实现它的手段,并不是我们的目标(何况有很多优秀的社区系统并不是 Java 写的,甚至所用的语言和框架也不是主流的),所以“固执的过去”并不是那么重要,重要的是如何在用户体验方面做到极致,接近这个目标后再考虑技术层面的重构也不迟 🙏

    1 回复
    说的对,目前主要是功能和使用体验最重要。体验牛逼,用户量会倒逼技术架构的演进。做产品还是要客户第一,优先满足业务需求
    cbam
  • 查看全部回帖

推荐标签 标签

  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 191 关注
  • Electron

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

    15 引用 • 136 回帖 • 10 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18609 引用 • 69254 回帖 • 1 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 3 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 495 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    368 引用 • 1212 回帖 • 576 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 692 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 620 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    207 引用 • 2031 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    215 引用 • 462 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 38 关注
  • Quicker

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

    19 引用 • 73 回帖
  • Solo

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

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

    1425 引用 • 10043 回帖 • 471 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 348 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 243 关注
  • Firefox

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

    7 引用 • 30 回帖 • 455 关注
  • sts
    2 引用 • 2 回帖 • 146 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    57 引用 • 22 回帖 • 2 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 346 关注
  • 倾城之链
    23 引用 • 66 回帖 • 97 关注
  • PostgreSQL

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

    21 引用 • 22 回帖
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 589 关注
  • 自由行
    1 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 131 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 604 关注