少代码替代低代码(少代码替代低代码怎么弄)

少代码替代低代码(少代码替代低代码怎么弄)

目标是用尽可能少的代码实现尽可能多的价值。让我们来看看实现用更少代码做更多事的技术、工具和框架。

译自Less Code Alternatives to Low Code。

在我们系列文章的第一部分,我们分析了“低代码”和“少代码”在思想上的区别。我们明确了虽然低代码解决方案让更多人可参与软件开发,但它存在局限性,特别是在开发复杂系统时。

增加的每一行代码都会提高系统的复杂度和维护负担。因此,目标是让团队用尽可能少的代码实现尽可能多的价值。在本文中,我们将探讨实现用更少代码做更多事的技术、工具和框架。

改变思维方式

拥抱“最小化编程”理念非常重要。这种理念本质上倾向追求代码的清晰性,激励你识别代码中不可或缺的元素,然后抛弃其他部分。是否存在更简洁的解决方案?工具能否用更少的代码实现相同的结果?我正在构建独特且具有价值的东西,还是在重复解决已被解决的问题?

每一行代码都必须从它所提供的潜在价值和代表的未来负担进行审视。通过避免或删除不必要的代码,利用他人的工作来减少这种负担。

调整过程

这种对“少码”的倾向不仅仅局限于个别开发者,而应该渗透到整个软件开发生命周期。代码评审不应仅视为批评环节,而应作为精简、明晰和简化代码的团队协作工作。同样,重构应被视为利用新知识改进旧代码的常规练习。一个更简洁、流畅的代码库就像一个组织良好的工作空间: 它能提高工作效率。自动化测试与此相辅相成,起着安全网的作用。它允许你修剪代码库并替换组件,同时确保新版本的表现如预期。

从低代码向少代码迈进的框架和工具

现代框架通过减少执行常见任务所需编写的代码量,极大地提高了开发效率。框架的底层代码由社区进行了测试和维护,减轻了周边维护负担。代码生成器不仅避免了重复性的击键,还确保生成的代码本身具有一致性和高效性。此外,我们开始看到AI和自动化技术为开发者提供新的支持,使其工作更具生产力。

在本节中,我们首先查看一些辅助前端开发的工具。之后,我们再深入研究几个真正体现“少代码”方法优势的工具。

前端开发中低代码的替代工具

前端开发有许多选择,虽然几种工具广为人知,但这个领域发展迅速,新的工具层出不穷。这种工具的不断变化可能会让人觉得这块领域善变,好像团队只是追随潮流,但实际情况通常不是这样。这些新进入者往往解决新的问题,以新方式解决现有问题,或针对特定利基进行优化。它们借鉴现有工具的经验教训而构建,通常将它们作为增强或互操作性的基础以帮助采用。

例如,Next.js 在 React 的基础上增加了意见和功能,这些功能帮助创建 Web 应用程序。它可以帮助解决混合静态和服务器端渲染内容、基于页面的路由、数据获取、中间件等常见挑战。

Next.js 利用文件系统提供自动路由,消除了单独的路由配置的需要。这大大简化了代码,使其更易于理解和维护。

app/├─ page.js└─ about/ └─ page.js

在这个结构中,app/page.js和app/about/page.js文件自动成为应用程序中的页面路由(/和/about)。

Next.js 还通过允许开发人员为 API 创建自定义路由处理程序来方便后端开发;这些文件约定命名为[route].js。

// app/api/route.jsexport async function GET() { const res = await fetch('<https://mydata.example.com/latest>', { headers: { 'Content-Type': 'application/json' }, }); const data = await res.json(); return Response.json(data);}

相比之下,Astro更注重内容,具有确保博客、作品集、电子商务或营销网站等页面加载时间的功能。Astro的部分水合特性在减少发送到浏览器的代码量方面是一个突破。与传统的完全水合整个应用程序的框架不同,Astro仅向浏览器发送必要的JavaScript,从而极大地减少了加载时间。

// This component won't send any JavaScript to the client// Great for static sites or server-rendered pages <html> <body> <h1>Hello, world!</h1> </body></html> // This component sends a tiny amount of JavaScript to the client// Astro will automatically only hydrate the <Counter /> component, nothing else <html> <body> <Counter client:load /> </body></html>

虽然Astro提供了自己的组件框架,但它也与React、Svelte和Vue等多种其他框架互操作。

其他工具关注构建时间改进、托管和预览、无障碍性、自动化测试、类型安全等围绕开发网站和应用程序的许多其他任务。

探索和选择适合您情况的工具,而不是最熟悉的工具,可以在很少投入的情况下极大地影响您的应用程序。

后端开发的低代码替代工具

后端工具的变化节奏一度非常缓慢。然而,最近这个领域变得更加活跃,以至于很容易错过新工具的全貌。与前端开发一样,这些新选择通常解决新的问题,或在现有选项基础上进一步提高生产力和稳定性。

不去探索这些新选项,会导致团队从事低价值、没有差异化的工作,或认为过去的挑战至今仍未解决。

例如,Supabase在PostgreSQL基础上,结合其他一些开源工具,提供了一整套后端开发工具,用于构建和托管API、数据持久化、函数和认证等,所有这些都增强了PostgreSQL数据库。

Supabase可以以极少的代码实现用户认证:

import { createClient } from '@supabase/supabase-js' const supabase = createClient('<https://your-supabase-url>', 'your-public-api-key') async function signUp(email, password) { const { user, error } = await supabase.auth.signUp({ email: email, password: password, }) if (error) console.error(error) else console.log(user)}

另一个进步领域是基础设施即代码,也称为自我配置运行时。这些是工具、框架或平台,尽可能减少构建应用程序的重复工作,让团队只关注特定产品的代码。这类新兴选项包括Nitric、Encore、Shuttle、Ampt和Wing等,每种方法针对这个问题及其适用场景各有不同。

以下是一个使用Nitric构建的API示例,它消除了使用传统IaC工具构建部署项目的需要。相反,要部署必要的基础设施,Nitric CLI会自动创建资源规范,然后配置和设置运行应用代码所需的API网关和文档存储。

import { api, collection } from '@nitric/sdk'import { v4 as uuid } from 'uuid' const profileApi = api('public')const profiles = collection('profiles').for('writing', 'reading') profileApi.post('/profiles', async (ctx) => { const id = uuid() // Store the new profile in the profiles collection await profiles.doc(id).set({ name: ctx.req.json().name, age: ctx.req.json().age, homeTown: ctx.req.json().homeTown, }) // Set a JSON HTTP response ctx.res.json({ msg: `Profile with id $[id] created.`, })})

适应变化

在敏捷和效率至关重要的时代,“少代码”不仅是编写更少的代码,而是利用最好的工具、实践和思维方式,以更少的努力交付更多价值。随着技术格局不断发展,开发者和团队保持好奇心和适应变化至关重要。

工具和产品格局的变化并非简单追随潮流,而是关乎抽象、效率和提供构建更好系统的新方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月14日 下午1:35
下一篇 2024年5月14日 下午1:47

相关推荐

  • 广州医科大学新造校区科研中心项目

    广州医科大学新造校区科研中心项目 近年来,随着医学教育与科研的不断发展,广州医科大学的新造校区科研中心项目备受关注。该项目位于广州市白云山脚下,规划用地4000亩,是中国南方地区最…

    联系我们 2024年12月3日
    1
  • 好的项目管理工具

    好的项目管理工具:让项目成功的关键因素 项目管理在商业和组织的日常生活中扮演着越来越重要的角色。一个高效的项目管理可以帮助组织更好地规划和管理项目,提高生产力和效率,降低风险,减少…

    联系我们 2024年9月16日
    21
  • 研发过程中的问题识别与解决

    研发过程中的问题识别与解决 在研发过程中,各种问题都可能出现。这些问题可能包括技术问题,人员问题,财务问题,甚至是政治问题。然而,及时发现和解决这些问题对于项目的成功至关重要。本文…

    联系我们 2024年12月7日
    5
  • 【“三抓三促”进行时】西坡镇-党建引领振兴路 真情帮扶谱新篇

    为持续深入贯彻党的二十大精神,全面落实中央一号文件相关要求,认真贯彻中央和省委、市委、县委和镇党委关于巩固拓展脱贫攻坚成果、全面推进乡村振兴的部署要求,努力建设幸福美好新西坡,西坡…

    联系我们 2023年5月31日
    228
  • 软件开发人员保密培训方案

    软件开发人员保密培训方案 随着信息技术的不断发展,软件开发成为了当今社会中最重要的行业之一。但是,由于软件开发的敏感性和高度保密性,软件开发人员必须具备良好的保密意识和技能,确保软…

    联系我们 2024年12月10日
    1
  • 广西重大项目用地服务监测系统上线 数字赋能用地管理(广西自然资源厅数据服务基地)

    图为广西重大项目用地服务监测“一张图”系统。 黄尚宁 摄 中新网南宁10月28日电(林艳华 黄尚宁 李晓燕)由广西壮族自治区自然资源厅研发的重大项目用地服务监测“一张图”信息系统日…

    联系我们 2022年5月22日
    297
  • 2022资金管理制度.doc(资金管理制度建设)

    财务管理的核心是资金管理 分为三重境界 注重资金安全、资金效率,资金收益 从控制风险到提质增效的过程 如何做好资金管理呢? 今天的超实用干货是 《资金管理制度大全.doc》 20份…

    联系我们 2022年5月23日
    299
  • 课题 负责 人学 术经 历

    负责人学术经历:从古代到现代,一个家族的传承与变迁 人学是中国古代的一种哲学和学术体系,其创始人是孔子。人学主要研究人类的本质、人性、道德、伦理等方面,旨在提高人类的智慧和道德水平…

    联系我们 2024年12月9日
    0
  • 山西省党员信息管理系统

    山西省党员信息管理系统 随着中国共产党的不断发展和扩大,党员的数量也在不断增加。为了更好地管理党员信息,山西省党员信息管理系统应运而生。这个系统可以有效地管理党员的信息,包括党员的…

    联系我们 2024年12月4日
    0
  • 项目管理软件 购买

    项目管理软件的购买 项目管理软件是一种工具,可以帮助项目经理和团队更好地管理项目进度、质量和成本。在现代商业环境中,项目管理已经成为了一项不可或缺的技能,因此,选择一款好的项目管理…

    联系我们 2024年9月19日
    19