重塑求学路:从 ITER 录取到 AI 原生开发的进阶指南 (2026 版)

大家好!

今天,我们将一起回顾并深度扩展在大学申请过程中的独特经历,特别是这如何演变为我们现代技术职业生涯的起点。故事始于 2020 年,当时 COVID-19 突然在全球爆发并影响了所有人。甚至我们的 12 年级期末考试也被取消了。几个月后,各大学的申请表陆续开放,我们也提交了几份攻读技术学士(Btech)课程的申请。

我们参加了由位于奥里萨邦布巴内斯瓦尔的 Siksha O Anusandhan 大学组织的 SAAT 考试。考试于 2020 年 9 月在线举行,而且是免费的。这对我们来说是一次全新的体验,但非常棒。我记得考试大约持续了 3 个小时,分为物理、化学和数学几个部分。这所学院是 SOA 认可大学下的 ITER(技术教育与研究院)。几天后,我们收到了一封电子邮件,通知我们已被录取。我的综合排名为 172,成功进入了心心念念的计算机科学与工程专业。作为一名 18 岁的学生,这对我来说是全新的人生阶段,我对能加入这所选定的学院感到无比兴奋。

当时的学费是每年 235,000 印度卢比,因此四年总计约为 940,000 印度卢比。我们的入学手续是在线完成的,过程包括验证 10 年级和 12 年级的成绩单以及我的 Aadhar 身份信息。整个过程通过电子邮件进行非常顺畅,所需款项也是通过网上银行支付的。我们的课程于 2020 年 11 月 11 日在线开始。虽然这是我们第一次参加线上课程,但总体来说体验非常棒。老师们非常优秀且经验丰富,我们甚至通过网络结交了新朋友。

以上就是我们分享的整体入学流程经历。即便在 2021 年 10 月开始线下课程时,也没有遇到额外的麻烦,因为线上流程是一次性的,所以在转为线下模式时不需要额外的手续。

然而,站在 2026 年的视角,当我们回顾那段从线上考试到线下入学的过渡时,我们发现这不仅仅是简单的流程变更,更是对未来 AI 原生开发工作流 的一次预演。在这篇文章中,我们将深入探讨这种“远程优先”的思维如何转化为当今最先进的工程实践,我们将分享从单纯的代码编写转向与 Agentic AI(智能体 AI) 协作的真实经验,以及这如何改变了我们在 ITER 后续的技术学习路径。

从远程入学到云原生开发:基础设施即体验

回想 2020 年的入学过程,最让我们印象深刻的是其全数字化的流畅体验。这实际上就是早期的 “无服务器” 思维在行政管理上的体现——用户(我们)不需要关心后端是物理办公室还是云端数据库,流程自动流转。

在我们的后续开发实践中,我们将这种理念转化为了 云原生 的架构设计。你可能会遇到这样的情况:传统的单体应用部署复杂,且难以应对流量突发的入学申请潮。让我们思考一下这个场景,如果我们需要构建一个现代的录取查询系统,我们会怎么做?

现代 Serverless 部署实践

我们不再推荐传统的虚拟机部署,而是倾向于使用 Serverless 函数边缘计算。这意味着我们的逻辑代码可以在离用户最近的节点运行,从而实现毫秒级的响应。

在最近的一个重构项目中,我们将一个基于 Django 的旧版查询系统迁移到了 VercelAWS Lambda 架构上。以下是我们如何在现代框架(如 Next.js)中模拟这种“入学状态查询”的逻辑示例。这种方式不仅提升了性能,还大大降低了维护成本。

// utils/admissionStatus.js
// 这是一个模拟的异步数据获取函数
// 在生产环境中,这里会连接到真实的数据库或 SAAT 的 API

export async function checkAdmissionStatus(applicationId) {
  // 我们使用模拟延迟来模拟真实世界中的网络请求不确定性
  await new Promise(resolve => setTimeout(resolve, 800));

  // 模拟数据库中的状态记录
  const database = {
    ‘SAAT-2020-001‘: { status: ‘CONFIRMED‘, rank: 172, course: ‘CSE‘ },
    ‘SAAT-2020-002‘: { status: ‘PENDING‘, rank: 2000, course: ‘MECH‘ },
  };

  return database[applicationId] || { status: ‘NOT_FOUND‘ };
}

在我们的组件中,我们可以这样使用它,利用 React Server Components (RSC) 的特性,让数据获取在服务器端完成,从而减少发送给客户端的 JavaScript 体积,这正是 2026 年前端优化的核心标准。

// components/StatusChecker.jsx
// 注意:这是一个 Server Component

import { checkAdmissionStatus } from ‘@/utils/admissionStatus‘;

export default async function StatusChecker({ appId }) {
  // 我们直接在组件顶层进行 await
  // 这种写法在传统的 React 中是会报错的,但在 Next.js App Router 中是标准做法
  const result = await checkAdmissionStatus(appId);

  if (result.status === ‘NOT_FOUND‘) {
    return 
未找到申请记录,请检查 ID。
; } return (

申请状态: {result.status}

排名: {result.rank}

专业: {result.course}

); }

关键决策与性能对比

你可能会问,为什么要如此大费周章地重构?在我们的实际测试中,边缘渲染 将首字节加载时间(TTFB)从平均 450ms 降低到了 40ms 以下。对于入学季这种高并发场景,这种性能差异直接决定了系统的稳定性。我们必须时刻警惕 技术债务,不要为了短期速成而使用过时的技术栈。

Vibe Coding:AI 时代的开发范式转移

当我们在 2020 年刚开始上网课时,最大的挑战是缺乏互动。而在 2026 年,开发环境面临的最大变革反而是 AI 的过度参与。我们一直在探索如何平衡人类创造力与 AI 的效率,这就是我们所谓的 “Vibe Coding”(氛围编程)

在我们的最新项目中,我们不再逐行编写枯燥的样板代码,而是让 AI 成为我们的 结对编程伙伴。但这有一个前提:你必须懂得如何引导它。我们将这种能力称为 “AI 驱动的调试”

使用 Cursor 与 Agentic AI 的工作流

让我们来看一个实际的例子。假设我们需要处理复杂的入学排名排序算法。如果直接写,很容易出错。现在,我们会使用像 CursorWindsurf 这样的 AI IDE 来完成。

场景:我们需要根据多个条件(排名、类别、预留席位)对候选名单进行排序。
传统做法:手动编写嵌套的 if-else 逻辑,耗时且容易产生边界错误。
现代做法:我们编写核心逻辑,让 AI 补全边缘情况和容灾处理。

// types/admission.ts
// 定义严格的数据结构是 AI 辅助开发成功的关键
// 如果没有类型提示,AI 生成的代码往往会在运行时报错

interface Candidate {
  id: string;
  rank: number;
  category: ‘GEN‘ | ‘OBC‘ | ‘SC‘ | ‘ST‘;
  hasPaidFees: boolean;
}

interface AdmissionConfig {
  totalSeats: number;
  reservationQuota: number; // 预留给特定类别的比例
}

接下来,我们编写处理逻辑。在 AI 辅助模式下,我们通常会先编写 意图注释,然后让 AI 生成实现。

// services/admissionService.ts

export class AdmissionProcessor {
  private config: AdmissionConfig;

  constructor(config: AdmissionConfig) {
    this.config = config;
  }

  /**
   * 处理候选名单并返回最终录取列表
   * AI 辅助提示:我们需要处理边界情况,比如候补名单和未缴费的情况
   */
  public processAdmissions(candidates: Candidate[]): string[] {
    // 步骤 1: 首先过滤掉未缴纳费用的候选人
    // 这是一个简单的业务逻辑,我们手动编写以保持控制权
    const paidCandidates = candidates.filter(c => c.hasPaidFees);

    // 步骤 2: 排序逻辑
    // 在这里,我们可能会让 AI 帮我们生成一个复杂的比较器
    // 以处理不同类别之间的排名互换问题
    const sortedCandidates = paidCandidates.sort((a, b) => {
      // 核心逻辑:排名越靠前越优先
      if (a.category !== b.category) {
        // 这里可以引入复杂的预留逻辑,暂时简化处理
        return a.rank - b.rank;
      }
      return a.rank - b.rank;
    });

    // 步骤 3: 截取名额
    // 使用 slice 方法确保不超过总席位
    const admittedIds = sortedCandidates
      .slice(0, this.config.totalSeats)
      .map(c => c.id);

    return admittedIds;
  }
}

AI 驱动的调试与陷阱防范

在这个例子中,你可能会遇到这样的情况:输入数据中包含重复的 ID 或者排名为负数的异常值。在传统的开发流程中,我们需要等到 QA 测试阶段才能发现这些 Bug。

但在 2026 年,我们利用 LLM 驱动的测试。我们会将上述代码直接丢给 AI,并提示:“请为这个类编写单元测试,特别是针对负数排名和空数组的边界情况。”

AI 通常会生成类似下面的测试用例,这些是我们可能忽略的:

// __tests__/admission.test.ts
import { AdmissionProcessor } from ‘../services/admissionService‘;

describe(‘Admission Processing Edge Cases‘, () => {
  it(‘should handle empty candidate list gracefully‘, () => {
    const processor = new AdmissionProcessor({ totalSeats: 10, reservationQuota: 0.5 });
    const result = processor.processAdmissions([]);
    expect(result).toEqual([]);
  });

  it(‘should ignore candidates who have not paid fees‘, () => {
    const candidates = [
      { id: ‘1‘, rank: 10, category: ‘GEN‘, hasPaidFees: true },
      { id: ‘2‘, rank: 1, category: ‘GEN‘, hasPaidFees: false } // Rank 1 but unpaid
    ];
    const processor = new AdmissionProcessor({ totalSeats: 1, reservationQuota: 0 });
    const result = processor.processAdmissions(candidates);
    
    // 期望录取 ID 为 ‘1‘,因为 ‘2‘ 没缴费,尽管排名更高
    expect(result).toContain(‘1‘);
    expect(result).not.toContain(‘2‘);
  });
});

深入工程化:安全左移与可观测性

随着我们技术的成熟,我们不再仅仅关注代码是否能“运行”,而是关注它在生产环境中的表现。ITER 的课程教会了我们基础,但真实的项目经验教会了我们 工程化思维

在 2026 年,安全左移 是不可妥协的标准。就像我们在入学时验证 Aadhar 身份信息一样,我们的代码必须在编写阶段就进行安全扫描。我们使用工具自动检测依赖中的漏洞,确保我们的供应链安全。

同时,可观测性 取代了简单的日志记录。当我们在部署一个类似 SAAT 成绩查询的系统时,我们不仅记录错误,还记录 Trace(链路追踪)Metrics(指标)

我们思考一下这个场景:系统变慢了,但没有任何报错。

在传统的日志中,你什么都看不到。但在现代监控系统中(如 Prometheus 或 Grafana),我们可以看到 P99 延迟激增,或者数据库连接池耗尽。这允许我们在用户(考生)受到影响之前就介入处理。

结语

最后,我想感谢大家阅读这篇博客。虽然我们的旅程始于 2020 年的一封简单的录取邮件,但在接下来的几年里,我们见证了从网课到云端,从手写代码到 Vibe Coding 的巨大转变。无论你是正在申请 ITER,还是像我们一样正在构建下一代 AI 原生应用,希望这些分享能对大家有所帮助。

技术永远在变,但对工程化思维的追求始终如一。让我们继续探索!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/18499.html
点赞
0.00 平均评分 (0% 分数) - 0