构建我的开发者作品集:从热情到产品的旅程

发布: (2026年2月4日 GMT+8 04:47)
7 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体文本内容(文章正文),我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。谢谢!

🎯 任务

构建一个作品集,以证明我能够 构建作品集(元,没错?)。
它需要 快速美观,并且 真正有用

🛠️ 技术栈

工具选择原因
Next.js 14 (App Router)Server components 是颠覆性的技术
TypeScript安心编写代码,避免运行时错误
Vanilla CSS完全掌控,零冗余,灵活度最高
Google Fonts (Inter)干净、专业的排版
SupabasePostgreSQL + 认证一体化
Supabase Storage简单的图片与媒体托管
Vercel秒级部署,遍布全球的 Edge 网络
MDX编写富文本内容并嵌入 React 组件
Google Analytics了解访客行为
Syntax Highlighting让代码片段看起来更专业

✨ 设计目标

  • Dark‑Mode First – 现代开发者使用暗色模式;浅色模式为可选。
  • Smooth Animations – 悬停效果、页面过渡和微交互自然流畅。
  • Color Psychology – 和谐的 HSL 颜色组合 + 渐变,营造高端感(不使用基础的蓝色/红色)。
  • Typography Hierarchy – 清晰的标题层级,使用不同的字重。
  • Mobile‑First – 首先为手机构建,然后再向上扩展(大多数访客使用移动端)。

📐 编码前的规划

我预先定义了以下设计代币:

/* Color variables */
:root {
  --color-primary: hsl(210, 50%, 55%);
  --color-bg-dark: hsl(210, 10%, 10%);
  --color-bg-light: hsl(0, 0%, 100%);
}

/* Spacing scale (0.25rem increments) */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
...

/* Typography system */
--font-size-base: 1rem;
--font-size-lg: 1.25rem;
--font-weight-regular: 400;
--font-weight-bold: 700;
...

这些代币后来节省了数小时的来回沟通

🧩 可复用的构建块

按钮组件 (TypeScript)

// components/Button.tsx
interface ButtonProps {
  variant: 'primary' | 'secondary' | 'ghost';
  size: 'sm' | 'md' | 'lg';
  children: React.ReactNode;
}

export const Button: React.FC = ({
  variant = 'primary',
  size = 'md',
  children,
}) => {
  const className = `
    btn btn-${variant} btn-${size}
  `;
  return {children};
};

TypeScript 接口让一切保持有序且无 bug。

图像优化

import Image from 'next/image';
  • 通过 Next.js Image 组件实现自动优化。
  • 代码拆分以减小初始包大小。
  • 使用 next/font 进行字体优化。

最小化 JavaScript

  • CSS 处理动画。
  • 在整个项目中使用 语义化 HTML
  • 为 SEO 添加 meta 标签Open GraphJSON‑LD站点地图

⚡ 性能技巧

GPU 加速动画

/* Fast – uses transform (GPU) */
.card:hover {
  transform: translateY(-4px);
  transition: transform 0.2s ease;
}

/* Slow – forces layout recalculation */
.card:hover {
  margin-top: -4px; /* ❌ Bad for performance */
}
  • 优先使用 transformopacity
  • 避免对 widthheight 或其他布局属性进行动画。

通用优化

  • 压缩图像(WebP、AVIF)。
  • 懒加载 折叠以下内容。
  • 最小化 JavaScript(仅保留必要部分)。
  • 通过 Vercel Edge Network 使用 CDN

📂 项目展示

  • 网格布局,具有清晰的视觉层次结构。
  • 类别筛选,便于导航。
  • 精选 部分,展示顶级作品。
  • 案例研究页面,深入探讨。

悬停动画在不杂乱初始视图的情况下显示额外细节。

📧 联系方式与可用时间

  • 地点: 印度马勒冈,纳西克
  • 时间: 上午10点 – 下午7点(IST),接受合作
  • 电子邮件: work@mahendranagpure.com (简洁、易获取的形式)

🗒️ 经验教训

  1. Design Tokens 节省时间 – CSS 变量用于颜色、间距和排版,使构建保持一致。
  2. TypeScript 值得投入 – 编译时错误捕获价值无可估量。
  3. Accessibility 并非额外工作 – 语义化 HTML + ARIA + 键盘测试 = 为所有人提供更好的用户体验。
  4. Performance 是一种特性 – 快速的网站转化率更高;从第一天起就进行优化。
  5. Ship, Then Iterate – 以约 80 % 完成度上线,然后根据真实反馈进行改进。

🚀 接下来是什么?

  • 完整博客集成 – 将我的 DEV 内容迁移到我的平台(支持 MDX)。
  • 案例研究 – 对项目开发进行深入探讨。
  • 交互式演示 – 访客可以玩耍的实时代码示例。
  • 新闻通讯 – 每周技巧和洞见。
  • 主题切换 – 用户可在暗色和亮色模式之间选择。

📚 分享知识

我一直在 DEV 上发布我学到的内容:

  • 只学 JavaScript 中重要的内容 – 我的路线图
  • 只学 CSS 中重要的内容

“公开学习”带来了变革。每篇教程都巩固了我的理解,同时帮助他人。双赢。

🙏 最后思考

  • 立即开始 – 不要等到完美的想法或技术栈。
  • 保持真实 – 让你的个性闪耀。
  • 优先考虑性能 – 速度比花哨的功能更重要。
  • 保持简洁 – 与其有 10 个半成品,不如拥有 3 个打磨精致的功能。
  • 永远迭代 – 版本 1.0 只是开始。

我随时乐意与其他开发者聊聊 生产力性能作品集设计。欢迎联系!

与我联系

  • 作品集:
  • 领英:
  • GitHub:
  • 电子邮件:

你呢?在构建作品集时,最具挑战的部分是什么?在下方留下评论——我很想听听你的经历!

如果你觉得这篇文章有帮助,请在 DEV 上关注我,以获取更多网页开发内容。我分享关于 JavaScript、CSS、React 和全栈开发的实用教程。

祝编码愉快! 🚀

Back to Blog

相关文章

阅读更多 »

Next.js ConnectRPC 代理模式

封面图像:Next.js ConnectRPC Proxy Pattern https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-...