构建我的开发者作品集:从热情到产品的旅程
Source: Dev.to
请提供您希望翻译的具体文本内容(文章正文),我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。谢谢!
🎯 任务
构建一个作品集,以证明我能够 构建作品集(元,没错?)。
它需要 快速、美观,并且 真正有用。
🛠️ 技术栈
| 工具 | 选择原因 |
|---|---|
| Next.js 14 (App Router) | Server components 是颠覆性的技术 |
| TypeScript | 安心编写代码,避免运行时错误 |
| Vanilla CSS | 完全掌控,零冗余,灵活度最高 |
| Google Fonts (Inter) | 干净、专业的排版 |
| Supabase | PostgreSQL + 认证一体化 |
| 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 Graph、JSON‑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 */
}
- 优先使用
transform和opacity。 - 避免对
width、height或其他布局属性进行动画。
通用优化
- 压缩图像(WebP、AVIF)。
- 懒加载 折叠以下内容。
- 最小化 JavaScript(仅保留必要部分)。
- 通过 Vercel Edge Network 使用 CDN。
📂 项目展示
- 网格布局,具有清晰的视觉层次结构。
- 类别筛选,便于导航。
- 精选 部分,展示顶级作品。
- 案例研究页面,深入探讨。
悬停动画在不杂乱初始视图的情况下显示额外细节。
📧 联系方式与可用时间
- 地点: 印度马勒冈,纳西克
- 时间: 上午10点 – 下午7点(IST),接受合作
- 电子邮件:
work@mahendranagpure.com(简洁、易获取的形式)
🗒️ 经验教训
- Design Tokens 节省时间 – CSS 变量用于颜色、间距和排版,使构建保持一致。
- TypeScript 值得投入 – 编译时错误捕获价值无可估量。
- Accessibility 并非额外工作 – 语义化 HTML + ARIA + 键盘测试 = 为所有人提供更好的用户体验。
- Performance 是一种特性 – 快速的网站转化率更高;从第一天起就进行优化。
- Ship, Then Iterate – 以约 80 % 完成度上线,然后根据真实反馈进行改进。
🚀 接下来是什么?
- 完整博客集成 – 将我的 DEV 内容迁移到我的平台(支持 MDX)。
- 案例研究 – 对项目开发进行深入探讨。
- 交互式演示 – 访客可以玩耍的实时代码示例。
- 新闻通讯 – 每周技巧和洞见。
- 主题切换 – 用户可在暗色和亮色模式之间选择。
📚 分享知识
我一直在 DEV 上发布我学到的内容:
- 只学 JavaScript 中重要的内容 – 我的路线图
- 只学 CSS 中重要的内容
“公开学习”带来了变革。每篇教程都巩固了我的理解,同时帮助他人。双赢。
🙏 最后思考
- 立即开始 – 不要等到完美的想法或技术栈。
- 保持真实 – 让你的个性闪耀。
- 优先考虑性能 – 速度比花哨的功能更重要。
- 保持简洁 – 与其有 10 个半成品,不如拥有 3 个打磨精致的功能。
- 永远迭代 – 版本 1.0 只是开始。
我随时乐意与其他开发者聊聊 生产力、性能 或 作品集设计。欢迎联系!
与我联系
- 作品集:
- 领英:
- GitHub:
- 电子邮件:
你呢?在构建作品集时,最具挑战的部分是什么?在下方留下评论——我很想听听你的经历!
如果你觉得这篇文章有帮助,请在 DEV 上关注我,以获取更多网页开发内容。我分享关于 JavaScript、CSS、React 和全栈开发的实用教程。
祝编码愉快! 🚀