Normal view

There are new articles available, click to refresh the page.
Today — 17 June 2025Curiosity

求助, PC 显示器与主机远程连接有什么方案?

By: nijia1161
17 June 2025 at 02:12
nijia1161:

想在客厅放一台 MATX 主机作为游戏机,HDMI 连接电视,平常看电影打游戏,但是也有轻度的办公需求,房间都有千兆网口,房间离客厅隔一两堵 12 墙,有没有什么方案可以将 IO 设备与主机远程连接? 我自己研究了下,有两个方案 方案一是有线 KVM ,就是不知道该选什么品牌型号,图像质量和信号延迟如何,查了下好像只能 1920*1080 方案二是无线 KVM ,可能比较适合在客厅其他地方办公,好像是采用 5G 频段,不知道穿墙能力如何,隔两堵 12 墙能否正常工作? 如果有其他更好的方案,烦请指点,不胜感激

失业程序员来柬埔寨创业记录

By: diubo
17 June 2025 at 00:55
diubo:

标题不知道怎么取好一点,这样应该还算准确。

帖子内容主要是记录、分享和吐槽这段时间的经历。

之前在国内自己也折腾了两年,接活,做电商,都没能成规模,最终放弃了。

去年 11 月份,我来金边考察过一次,待了一周,感觉电子产品的市场还可以。今年 2 月份决定来柬埔寨,2 月 20 号早上到金边,接着租房买摩托车(这边的主要交通工具)大概用了一周,目前为止折腾了三个多月。

来之前想了几个模式:批发、零售、微商。一个个来说:

1.批发:由于资金有限,所以我一开始就不考虑在批发市场开档口的方式,直接找了一个懂中文的朋友,跟我一起去线下店推。我的最初想法是,通过这种方式,就算每天成交一个店,那么 100 天后就有 100 家店,如果平均每家店每天销售一件产品……最终发现这个想法太理想化了,因为一段时间下来,发现小点的店铺,产品销得很慢很慢,可能一周都卖不了一个,而比较大的店铺,又把产品价格压得死低,所以最终放弃了这种模式。

2.零售:包括线上和线下的方式,线上就是 FB 推,线下就是摆摊。线上的方式目前还在做,有几个爆款卖得还不错,其它几乎没有动销。摆摊儿的方式,每个月大概有 6-10 天可做,因为柬埔寨这边每个月发两次工资,发工资后的几天摆摊效果还可以,再往后就不行了,本地人的消费习惯太差(等会儿吐槽)。

3.微商:为了这个模式,我专门开发了一套简易的系统,就是用域名泛解析,给系统的每个代理搞一个二级域名的页面,上面用代理的联系方式,展示的是我上传的所有产品,用户就可以拿这个页面自己去推广。我觉得柬埔寨这种做法应该是比较少的,所以这让代理感觉很高级。目前为止,这种模式效果最好。

说说柬埔寨这边人的消费习惯,据当地的朋友说,最近几年,有些当地人才有了储蓄的习惯,大部分人仍然是发完工资就去消费,消费完了再来上班。柬埔寨每个月 10 号和 25 号发两次工资,每次发完工资到第二天,工厂上班的人就会少一大片,有的的会提前请假,有的没请假直接就没来上班,打电话过去问,就是感冒了、喝酒喝多、朋友结婚、家里有事、老婆生孩子。。各种理由。

举个例子,6 月 10 号下午,有个客户要买产品,我看要下雨了,就让客服跟他说,明天再送吧。结果那客户回复说:最好今天送吧,明天我可能就没钱了。

本地人工资花太快,可能也跟这里低收入高消费有关。法定最低工资标准 208 美金,一般工厂工人的综合工资在 300-400 美金之间,餐厅服务员 250-300 的比较多。我请了一个客服,月薪 250 美金+提成,综合工资大概 400 美金左右。对了,这边美金和当地的瑞尔通用,1 美金=4000 瑞尔。如果你买东西付美金,找零很可能是瑞尔。

关于这边的电商,来之前我在网上了解到,这边有几个电商平台。但是来了之后问了很多本地的朋友,很少有人通过电商平台买东西,甚至有的都不知道有这些平台。本地人网购的方式,主要就是靠 FB 或 TK 的广告,看到后联系购买。付款方式有两种,一种货到付款,一种是直接银行转账,第一种居多。也有一小部分本地人,会用淘宝买东西,到货比较慢,10 天左右。

这段经历其实对我来说很难,也总会遇到很多奇葩事。比如前天早上发现断网了,手机能打电话,但是没有网络,问了本地朋友才知道,原来我用的 Smart 运营商,带宽是从泰国买的,而柬埔寨前一天晚上突然宣布禁止购买泰国的带宽,就是这么突然,R 了。直到晚上 6 点,网络才逐渐恢复。

先写这些吧,发现要吐槽的太多。

Github & Hack Club 青少年编码活动 送免费贴纸 敲代码得奖品

By: Dogxi
17 June 2025 at 00:52
Dogxi:

show


收到了 Github Education 发来的邮件 =w=

看了官网,感觉是个不错的活动,分享给大家

限 18 岁及以下青少年参加,参加就有免费贴纸

然后 1 hour coding 可以换取 1 shell ,用 shell 可以换取奖品

Summer of Making 2025 Linkhttps://summer.hack.club/nf

推荐给需要的 =w=,活动时间是 6.16 - 8.31 ,我准备试试嫖点东西


show

转租深圳南山区后海名苑居规则 2 房

By: bochenhk
17 June 2025 at 00:33
bochenhk:

后海名苑居南区 2 室 2 厅 南。 精装两房,71 平米。

地址:后海大道 2333 号。 地铁:距离创业路站 374 米地铁:距离名海站 378 米地铁:距离登良站 638 米。 PS:可以留联系方式。

https://sz.zu.ke.com/zufang/SZ2044031515918073856.html?nav=0&unique_id=81964b1e-4768-4abe-8676-843c0dbaf982zufangrs%E5%90%8E%E6%B5%B7%E5%90%8D%E8%8B%91%E5%B1%851750091323230

Next.js 面试题: API 深度解析

By: leia
17 June 2025 at 00:24
leia:

Next.js 面试题:API 深度解析

Next.js 通过 App Router 的引入彻底改变了 Web 开发范式。在这个新时代,深入理解 Next.js 的 API 函数不再只是锦上添花,而是技术面试中的关键区分点。这些函数构成了构建高性能、可扩展、现代化 Web 应用的基石。

本文将系统地解析 Next.js 的各类函数,不仅阐述它们的基本功能,更深入探讨实际应用场景、细微差别以及面试中可能出现的问题。我们将着重于理解每个函数背后的实现原理与设计思路。

Next.js 缓存函数与应用性能优化

缓存是 Next.js 性能策略的核心。面试中,候选人需要清晰阐述不同缓存层级和控制机制。

扩展的 fetch API

Next.js 对原生 fetch API 进行了扩展,为数据获取提供了精细的服务器端缓存控制。

在实际开发中,我们可以通过几个关键配置选项来控制缓存行为:

JavaScript

// 默认行为,开发环境每次请求获取,生产环境静态路由只获取一次 const data = await fetch('https://api.example.com/data');

// 始终从服务器获取最新数据,不使用缓存 const freshData = await fetch('https://api.example.com/data', { cache: 'no-store' });

// 优先使用缓存,设置 60 秒的重新验证时间 const cachedData = await fetch('https://api.example.com/data', {
  next: { revalidate: 60 }
});

// 使用缓存标签,便于精确失效 const taggedData = await fetch('https://api.example.com/products', {
  next: { tags: ['products'] }
});

这些缓存控制选项让开发者能够根据数据的性质和更新频率来优化应用性能。

缓存失效机制

Next.js 提供了两种主要的缓存失效方法:

  1. 按路径失效revalidatePath 允许我们清除特定路径的缓存数据。
  2. JavaScript
// 在 Server Action 中使用 async function updateProduct(formData) {
  await saveProduct(formData);
  // 失效产品列表页面的缓存
  revalidatePath('/products');
  // 注意:目前在 Server Action 中使用会使客户端路由缓存中的所有路由失效
}
  1. 按标签失效revalidateTag 让我们能够更精确地失效与特定标签关联的缓存数据。
  2. JavaScript
// 在 Server Action 中使用 async function updateProduct(formData) {
  await saveProduct(formData);
  // 只失效带有'products'标签的缓存数据
  revalidateTag('products');
}

面试中,理解这些缓存机制的工作原理以及何时使用哪种方法是展示你对 Next.js 深入理解的好机会。

Next.js 中的 HTTP 请求处理

Next.js 在标准 Web API 之上提供了强大的抽象,用于处理 cookies 、headers 和构建响应。

cookies 函数

cookies() 函数是一个异步函数,用于在 Server Components 中读取请求 cookies ,以及在 Server Actions 或 Route Handlers 中读取/写入 cookies 。

JavaScript

// 在 Server Component 中读取 cookieimport { cookies } from 'next/headers';

async function UserProfile() {
  const cookieStore = cookies();
  const theme = cookieStore.get('theme');

  return <div>Current theme: {theme?.value || 'default'}</div>;
}

// 在 Server Action 中设置 cookieasync function setTheme(theme) {
  'use server';

  cookies().set('theme', theme, {
    httpOnly: true,
    secure: process.env.NODE_ENV === 'production',
    maxAge: 60 * 60 * 24 * 7, // 一周 path: '/'
  });

  // 重定向或返回数据
}

值得注意的是,从 Next.js 15 开始,cookies() 函数变为异步,这是一个重要变化。使用此函数会使路由动态渲染,因为它依赖于运行时请求信息。

headers 与请求处理

headers() 函数让我们能够在 Server Component 中访问传入请求的头部信息:

JavaScript

import { headers } from 'next/headers';

async function UserAgentComponent() {
  const headersList = headers();
  const userAgent = headersList.get('user-agent');

  return <div>Your browser: {userAgent}</div>;
}

在 Middleware 和 Route Handlers 中,Next.js 提供了增强的 NextRequestNextResponse 对象,它们扩展了标准 Web API:

JavaScript

// 在 Middleware 中使用 import { NextRequest, NextResponse } from 'next/server';

export function middleware(request: NextRequest) {
  // 检查用户代理 const userAgent = request.headers.get('user-agent');

  // 基于移动设备重定向 if (userAgent && userAgent.includes('Mobile')) {
    return NextResponse.redirect(new URL('/mobile', request.url));
  }

  // 添加自定义头部并继续 const response = NextResponse.next();
  response.headers.set('x-custom-header', 'my-value');
  return response;
}

面试中,理解这些 API 的异步特性以及它们如何影响渲染策略是关键点。例如,你可以解释如何在需要保持页面大部分静态的同时访问 cookies 或 headers 信息。

Next.js 路由导航与控制

Next.js 提供了一套完整的路由系统,相关钩子和函数让开发者能够精确控制导航和访问路由信息。

客户端导航钩子

useRouter 是最常用的客户端导航钩子,提供了编程式路由控制:

JavaScript

'use client'import { useRouter } from 'next/navigation'export default function NavigationButtons() {
  const router = useRouter()

  return (
    <div><button onClick={() => router.push('/dashboard')}>Go to Dashboard</button><button onClick={() => router.back()}>Go Back</button><button onClick={() => router.refresh()}>Refresh Current Page</button></div>
  )
}

useRouter.refresh() 特别值得注意,它会重新获取数据并重新渲染 Server Components ,但保留客户端状态,这与完整页面刷新有很大不同。

其他有用的导航钩子包括:

  • usePathname(): 获取当前 URL 路径
  • useParams(): 访问动态路由参数
  • useSearchParams(): 读取 URL 查询字符串
  • useSelectedLayoutSegment(s): 了解活动路由段

JavaScript

'use client'import { usePathname, useParams, useSearchParams } from 'next/navigation'export function RouteInfo() {
  const pathname = usePathname();
  const params = useParams();
  const searchParams = useSearchParams();

  return (
    <div><p>Current path: {pathname}</p><p>Route params: {JSON.stringify(params)}</p><p>Search query: {searchParams.get('q')}</p></div>
  );
}

重定向与错误处理

Next.js 提供了几个用于控制导航流程的函数:

JavaScript

import { redirect, permanentRedirect, notFound } from 'next/navigation';

// 临时重定向
redirect('/login');

// 永久重定向(对 SEO 更友好)
permanentRedirect('/new-page');

// 显示 404 页面
notFound();

这些函数在不同上下文中的行为略有不同。例如,redirect 在 Server Actions 中使用 303 状态码,而在其他情况下使用 307 状态码。了解这些细微差别对于处理表单提交和保留请求方法非常重要。

元数据优化与 SEO

Next.js 提供了强大的工具来管理元数据,这对 SEO 和社交媒体分享至关重要。

动态元数据生成

generateMetadata 函数允许我们基于路由参数或外部数据动态生成页面元数据:

TypeScript

// app/products/[id]/page.tsxexport async function generateMetadata({ params }) {
  const product = await getProduct(params.id);

  return {
    title: product.name,
    description: product.description,
    openGraph: {
      images: [{ url: product.imageUrl }]
    }
  };
}

export default function ProductPage({ params }) {
  // 页面组件
}

Next.js 会自动记忆化 generateMetadata 中的数据获取,并在构建时(对静态路由)或请求时(对动态路由)生成元数据。

动态图像生成

对于社交媒体分享图像,ImageResponse 提供了使用 JSX 和 CSS 动态生成图像的能力:

TypeScript

// app/products/[id]/opengraph-image.tsximport { ImageResponse } from 'next/og';

export const runtime = 'edge';

export async function GET(request, { params }) {
  const product = await getProduct(params.id);

  return new ImageResponse(
    (
      <divstyle={{display: 'flex',
          fontSize: 48,
          background: 'white',
          width: '100%',
          height: '100%',
          padding: 32,
          alignItems: 'center',
          justifyContent: 'center'
        }}
      ><img src={product.imageUrl} width="200" height="200" /><h1>{product.name}</h1></div>
    ),
    {
      width: 1200,
      height: 630
    }
  );
}

这种方法比静态图像更灵活,可以为每个产品或文章生成独特的社交媒体预览图像。

服务器端逻辑与构建优化

Next.js 使用特定函数来指导其构建过程,特别是在静态生成和处理服务器端任务方面。

静态路由生成

generateStaticParams 函数是静态站点生成的核心,它允许我们在构建时预渲染动态路由:

TypeScript

// app/blog/[slug]/page.tsxexport async function generateStaticParams() {
  const posts = await getPosts();

  return posts.map((post) => ({
    slug: post.slug
  }));
}

export default function BlogPost({ params }) {
  // 页面组件
}

这个函数在构建时运行,为每个返回的参数集生成一个静态路由。它可以与 dynamicParams 配置结合使用,控制未预生成路径的处理方式:

JavaScript

// 允许按需生成未预渲染的路径(默认行为)
export const dynamicParams = true;

// 仅允许访问预生成的路径,其他返回
404export const dynamicParams = false;

响应后任务

after 函数允许我们调度在响应完成后执行的任务,这对于不应阻塞初始响应的操作(如日志记录、分析)非常有用:

JavaScript

import { after } from 'next/server';

export async function GET() {
  // 主要响应逻辑 const data = await fetchData();

  // 调度响应后任务
  after(() => {
    // 这不会阻塞响应
    logAccess();
    updateAnalytics();
  });

  return Response.json(data);
}

after 不会使路由动态化,即使对于静态页面,回调也会在构建时或重新验证时执行。这使得它成为处理副作用的理想选择,同时保持性能优势。

内容预览模式

draftMode 函数为内容创建者提供了查看未发布内容的能力,这对于与无头 CMS 集成特别有用:

TypeScript

// app/api/enable-draft/route.tsimport { draftMode } from 'next/headers';

export async function GET(request) {
  const { searchParams } = new URL(request.url);
  const secret = searchParams.get('secret');

  // 验证预览请求 if (secret !== process.env.PREVIEW_SECRET) {
    return new Response('Invalid token', { status: 401 });
  }

  // 启用草稿模式
  draftMode().enable();

  return new Response('Draft mode enabled');
}

在页面组件中,我们可以检查草稿模式状态并相应地获取内容:

TypeScript

// app/page.tsximport { draftMode } from 'next/headers';

export default async function Page() {
  const { isEnabled } = await draftMode();

  // 根据草稿模式状态获取内容 const content = await getContent({ draft: isEnabled });

  return (
    <div>
      {isEnabled && <div className="draft-banner">Draft Mode</div>}
      <h1>{content.title}</h1><div>{content.body}</div></div>
  );
}

授权与错误状态管理

Next.js 提供了几个实验性函数来处理常见的授权和错误状态,使开发者能够创建一致的用户体验。

授权状态处理

forbiddenunauthorized 函数(实验性)提供了一种声明式方法来处理授权失败:

TypeScript

// app/admin/page.tsximport { forbidden, unauthorized } from 'next/server';
import { getCurrentUser } from '@/lib/auth';

export default async function AdminPage() {
  const user = await getCurrentUser();

  if (!user) {
    // 用户未登录,显示 401 页面
    unauthorized();
  }

  if (!user.isAdmin) {
    // 用户无权访问,显示 403 页面
    forbidden();
  }

  return <AdminDashboard user={user} />;
}

这些函数会抛出错误,触发渲染相应的错误页面(unauthorized.jsforbidden.js),可以在这些页面中提供自定义 UI ,如登录表单。

错误传播控制

unstable_rethrow 函数解决了一个微妙但重要的问题:确保 Next.js 内部错误(如从 notFound()redirect() 抛出的错误)不会被用户的 try/catch 块意外捕获:

JavaScript

import { unstable_rethrow } from 'next/dist/client/components/error-boundary';

async function fetchAndDisplayProduct(id) {
  try {
    const product = await fetchProduct(id);

    if (!product) {
      notFound();
    }

    return <ProductDetails product={product} />;
  } catch (error) {
    // 清理资源
    closeConnections();

    // 确保 Next.js 错误继续传播
    unstable_rethrow(error);

    // 这里的代码永远不会执行
  }
}

这确保了 Next.js 的控制流机制能够正常工作,同时仍然允许开发者在错误处理中执行必要的清理。

性能监控与 Web Vitals

监控核心 Web 指标对于了解真实用户体验和识别性能问题至关重要。

Web Vitals 报告

useReportWebVitals 钩子使我们能够收集和报告关键性能指标:

JavaScript

'use client'import { useReportWebVitals } from 'next/web-vitals';

export function WebVitalsReporter() {
  useReportWebVitals((metric) => {
    // 根据指标类型进行处理 switch (metric.name) {
      case 'FCP':
        // 首次内容绘制 console.log('FCP:', metric.value);
        break;
      case 'LCP':
        // 最大内容绘制 console.log('LCP:', metric.value);
        break;
      case 'CLS':
        // 累积布局偏移 console.log('CLS:', metric.value);
        break;
      case 'FID':
        // 首次输入延迟 console.log('FID:', metric.value);
        break;
      case 'TTFB':
        // 首字节时间 console.log('TTFB:', metric.value);
        break;
      case 'INP':
        // 交互到下一次绘制 console.log('INP:', metric.value);
        break;
    }

    // 发送到分析服务
    sendToAnalytics({
      id: metric.id,
      name: metric.name,
      value: metric.value,
      rating: metric.rating // 'good', 'needs-improvement', 'poor'
    });
  });

  return null; // 这个组件不渲染任何 UI
}

通常,我们会在根布局中包含这个组件,以跟踪整个应用程序的性能:

TypeScript

// app/layout.tsximport { WebVitalsReporter } from '@/components/web-vitals';

export default function RootLayout({ children }) {
  return (
    <html lang="en"><body><WebVitalsReporter />
        {children}
      </body></html>
  );
}

通过收集这些指标,我们可以识别性能瓶颈,衡量优化的影响,并确保为用户提供流畅的体验。

总结:掌握 Next.js API 函数的关键

深入理解 Next.js 的 API 函数不仅是应对面试的关键,更是构建高性能、可维护应用的基础。这些函数反映了 Next.js 的核心设计理念:

  1. 性能优先:通过精细的缓存控制、静态生成和响应后任务等机制,Next.js 优化了应用性能。
  2. 开发体验:函数 API 提供了直观的接口,使复杂任务变得简单,如动态元数据生成和路由控制。
  3. 渐进增强:从基本功能到高级特性,Next.js 提供了一系列可组合的 API ,让开发者能够根据需要逐步采用。
  4. 标准对齐:许多 API 都基于 Web 标准,如 fetchHeadersResponse,使学习曲线更平缓。

在面试中,不仅要展示对这些函数的了解,更要展示对它们背后原理的理解,以及如何在实际项目中应用它们来解决具体问题。考虑各种权衡,如静态生成与动态渲染、客户端与服务器状态管理等,将使你的回答更加全面和深入。

随着 Next.js 的不断发展,保持对新特性和最佳实践的了解也很重要。实验性 API (如 forbiddenunauthorized)表明了框架未来的发展方向,了解这些可以让你在面试中展示前瞻性思维。

最后,精通这些函数可以显著增强应聘者在面试中的信心和表现。通过深入理解 Next.js 的核心概念和 API ,你将能够自信地应对各种技术挑战,并展示自己作为现代 Web 开发者的专业素养。

关于我

什么时候可以做空泡泡玛特

By: Donahue
17 June 2025 at 00:19
Donahue: 感觉这个完全是一个庞氏骗局,新时代的荷兰郁金香。那个 labubu 丑的不行,送我都嫌吓人(当然能卖钱另说)。

当然也有很多我觉得是骗局的比如比特币啥的,也可能是我没看懂。但这个一个玩偶卖到 100 多万我挺确信是炒作,再加上近期频繁上各个媒体(应该是营销手段之一,以前好像挺少见),感觉目的是今年拉高?

[独立开发] 做了个极简的一次性投资回报率计算工具,免费!欢迎试用提意见

16 June 2025 at 23:46
xie502161175:

产品链接LumpSumCalculator

背景需求
作为个人投资者,我常需要快速计算单笔投资的复利收益,但现有工具要么功能冗余,要么界面复杂。索性自己开发了这个极简的英文工具站,专注解决一次性投资( Lump Sum )的回报计算问题

核心特点

  1. 精准高效
    输入本金、年化利率、投资年限,一键生成复利结果与可视化图表
  2. 零干扰体验
    无广告/无弹窗/无跟踪,响应式设计适配桌面和移动端
  3. 场景聚焦
    专为股票定投、房产首付、奖学金规划等单笔投资场景优化

诚邀您

  • 试用后提流程优化建议(如交互细节或新增数据维度)
  • 反馈性能问题(加载速度/兼容性/移动端体验)
  • 分享投资场景需求(计划增加定期投资功能)

做工具的本质是解决问题,您的真实反馈能让它更实用!
👉 直达体验https://lumpsumcalculator.xyz

腾讯云,对于被微信判断为恶意或则色情的网址,有申诉加持吗?

By: mfsw
16 June 2025 at 23:44
mfsw:

如题,我的网页托管在阿里云上。 网页近期屡次被判断为色情,无法在微信浏览器中直接打开。 但是我这个网页是没有任何问题的。申诉过,也成功过,但是近期还是频繁的被判断为色情。 如果我转移到腾讯云,会不会好一点?有没有人工客服之类的,可以辅助申诉?

创业一年后被迫找工作顺利找到

By: jalr4ever
16 June 2025 at 22:41
jalr4ever:

书接上回:毕业四年后出道找工作直接凉凉。此文 V 站独家。分享求职经验和创业经验给 V 友们。

一、背景

  • 快速总结:去了朋友的创业公司。“是兄弟就砍我几刀”。没错,真的被砍了几刀。今年过年回来没钱直接不演了,不发工资逼走一波人(包括我)。并且截止离职那天,欠了两个月的工资,至今未还。画饼的 16 薪、股票期权当然也是都没有的。
  • 重新找工作的一个月:离职后边休息边做自己的创业项目,发现坑越来越深,路越来越长。还是先回去坐班,攒现金。
  • 离职前做的产品:ToB LLM Agent 。

二、创业总结

我对创业经验 & 思考:各种混乱和 PUA 和网上看到的大差不差。非常痛苦。不做过多讨论。直接看我的思考干货,详情看此文

三、面试总结

面试结果如何?

image-20250616213632968
  • 结果:不算约面前的 HR 预面试。正式的技术面 + HRBP 面,一个月一共面了 29 轮,共 16 家公司。通过拿到 offer 有 3 家。天使轮到大厂,各行各业都有。面试机会多也让我很惊讶。面的公司,深圳 80%,北京 20%。
  • 薪水:月薪平薪
  • 最终去向:大厂(没错,要 10115 了 ...)

面试失败的原因有啥?

  • 横向对比 - 现在稍微大点儿的公司,每一面都有横向 pk 。
  • 面试太多 - 面试太多了,于是自己拒绝主动推进了有两家?公司后续面试。后面也推掉了两家?一面。
  • 异地现场面试 - 一面远程。告知后续面试要现场,但是我在异地难以去现场。
  • 草台班子 HR - 感觉是 HR 没给业务筛直接约面。因为业务上会直接面露难色。我直接说那我走? 5 分钟速通。(而且居然是两个大厂)
  • 面试不熟悉:第一周面 9 轮。挂的多。第三周就好非常多。

为什么有这么多面试机会?

因为现在是 AI 风口,大家对 LLM Agent 研发有需求。大厂离职创业的人也多。加上这个行业刚起步,入行早。

我的两个领悟(本文最有价值的信息)

  • 为何没面试机会,就算有为何又老是挂?行业 & 业务匹配度!行业 & 业务匹配度!还是行业 & 业务匹配度!
  • 为何大家现在面试机会少?传统互联网各种行业的业务增长放缓,甚至没有增长,不需要研发。

面试准备哪些?

本次面试过程中,还是老三套:八股文 + 项目 + 算法题。得出一个结论:如果你业务匹配,基本聊项目。可能再写个算法题。他们真要人,一般不会考察八股文。

大多数考八股文的都是闲着蛋疼,因为他看不懂你项目(因为不业务不匹配,不熟悉你的业务)。或者 KPI 招聘。

有什么面试技巧?

1 、做好总结:每一场做好录音,给 Gemini 2.5 Pro 转录,不会的让其回答。理解记住。下次问发挥好。

2 、锻炼认知:项目上,对自己的事情全盘知悉;行业和业务上,创业心态去洞察问题,发挥最大的想象力思考行业发展、问题解决方案。这样才能「讨论」。

3 、提出质疑:创业心态,提出合适的、有价值的「质疑」。这个看人,我实际经历来看,小部分人会觉得我很尖锐像找茬,但大部分人觉得挺有意思。加分。

4 、刷题:没错。大小公司都有这个需求。避不开。

四、后记

前进的道路上,我现在正以 AI 布道师 Warren 这个角色在写博客( Tag:AI 、创业、大模型、工程技术、系统设计等)。

如果 V 友对 AI 、创业有兴趣,或者想和我交朋友,欢迎来 X 和小红书、知乎等,与我讨论。

有兴趣的朋友,请科学上网详情看我的 linktree: https://linktr.ee/jalr4ever

比起以往的互联网行业,AI 行业是相对「公平」的。每个人都有机会成为「定义者」。

当 Google 发明分布式三剑客开启云计算时代后,云技术蓬勃发展。云原生,Paas ,SaaS,FaaS ,边缘计算,微服务,高并发,分布式...在十几年后的今天,各种眼花缭乱的技术,名词压的人喘不过气。

时间来到 AI 时代,每个人都有机会成为问题和解决方案的「定义者」。因为就经验来看,大厂的高 P 大佬们,之前做的是别的业务,也没做过 Al 呀!大家同为新手,为什么他们给出的方案就是「正确答案」呢?

deepseek ,bytedance seed ,qwen ,各种明星 startup 。躬身入局,提出更精妙更惊奇的思路更好地解决问题。谁就是赢家。

[求助]ikuai 和小米 Ax3000 拨号延迟差距问题排查。

16 June 2025 at 22:40
kenanremix:

问题 1:ikuai 是安装在 PVE 里面的,ikuai 设置拨号时,与小米路由器拨号延迟差了 4 倍。也就是 ikuai 显示延迟是 190 ,小米路由器拨号显示 40 。 图片是 ikuai 拨号测速延迟界面(时间 6 月 16 日的 20:37 ,广西南宁联通) 在长沙的移动也是,ikuai 延迟巨高。

问题 2:j4125 在 ikuai 里面只显示了 2 个网口,另外 2 个网口没显示,这个需要如何处理,在 b 站搜索没找到关键词。我看别的 up 主在 ikuai 界面显示了 4 个网口

问题 3:设置 ikuai 拨号时,电脑的微软 edge 识别地址是新加坡了

在我敲出问题 3 的时候,我想起来了,PVE 里面还有一个 istore ,安装了 pashwall2 插件,设置所有流量通过订阅的机场,可能是这个原因么?

请各位解疑。谢谢。计划拓扑图

[携程 Trip.com] 内推|资深前端|酒店研发|上海|团队技术氛围浓厚

By: lguoachn
16 June 2025 at 22:04
lguoachn:

Hi 各位 V 友

携程 (这几年股价大涨,市值已超百度😂) 住宿业务 正在招聘一位资深前端( 酒店研发 方向),base 上海,携程总部。

非猎头,团队氛围好,技术挑战足,欢迎志同道合的朋友投递!

办公地点:上海市长宁区金钟路 968 号凌空 SOHO Zaha Hadid 设计的超酷办公楼,外形宛如 4 列巨型高铁蓄势待发的商业楼宇凌空 SOHO ,已经取得了美国 LEED 金级预认证。

员工食堂;享受免费健身房:跑步机、桌球、桌上足球、按摩椅、淋浴房。

投递后可帮你跟进进度,非猎头。

🔍 工作职责
• 负责携程酒店业务全链路研发,保障多平台兼容性与稳定性
• 主导前端技术选型、架构设计,攻克复杂技术难题
• 持续优化项目质量、性能及架构合理性
• 参与前端技术体系建设,沉淀组件库/工具链/技术文档

任职要求
• 计算机相关专业,3 年+ 前端开发经验
• 精通 JavaScript/TypeScript 及 ES6/7 特性
• 深度掌握 React/Vue 等框架原理及实战经验
• 具备高质量代码产出能力,遵循规范研发流程
• 关注前沿技术,学习能力强,具备产品思维与项目推动力

• 亿级流量业务场景,技术驱动国际化产品体验升级
• 技术深度×业务广度:架构设计 + 性能优化 + 工程化建设
• 开放技术分享文化,成长通道清晰

📬 联系我(备注「 V2EX 前端」)

微信:

投递后实时跟进进度

PromptX 女娲| 使用 AI 创造 AI

By: jshan
16 June 2025 at 22:00
jshan:

距离上次发帖 已经快一个月了

https://v2ex.com/t/1133796?p=1#reply9

PromptX 也迎来了几个比较大的版本迭代。

MCP

最新的版本支持了 MCP ,以更方便的形式接入,使用体验也大大得到了提升

{
  "mcpServers": {
    "promptx": {
      "command": "npx",
      "args": [
        "-y",
        "-f",
        "--registry",
        "https://registry.npmjs.org",
        "dpml-prompt@beta",
        "mcp-server"                       
      ]
    }
  }
}

女娲角色创造工坊

本次更新还有一个很大的亮点

💫 从想法到现实,只需 2 分钟

你有没有想过:如果我能为特定工作场景定制一个专业 AI 助手会怎样?女娲让这个想法变成现实。

"每个想法都值得拥有专属的 AI 助手,技术的门槛不应该限制创意的飞翔。"

🎯 核心价值转换

  • 🚀 零门槛创造: 无需学习复杂技术,用自然语言描述需求即可
  • ⚡ 极速交付: 从想法到可用角色,全程 2 分钟
  • 🎭 专业品质: 自动生成符合 DPML 标准的专业 AI 角色
  • 🔄 即插即用: 创建完成立即可以激活使用
  • 💝 掌控感: 从使用者到创造者的华丽转身

✨ 使用场景示例

🎯 用户需求 女娲生成 🚀 立即可用
👩‍💼 "我需要一个懂小红书营销的 AI 助手" 小红书营销专家角色 激活小红书营销专家
👨‍💻 "我想要一个 Python 异步编程专家" Python 异步编程导师角色 激活 Python 异步编程导师
🎨 "给我一个 UI/UX 设计顾问" UI/UX 设计专家角色 激活 UI/UX 设计专家
📊 "需要一个数据分析师助手" 数据分析专家角色 激活数据分析专家

🎪 体验女娲创造力 - 4 步创造专属 AI 助手

step1

step2

step3

step4

这个 MCP 导航网站推荐优质 MCP?

16 June 2025 at 21:18
zy199333210:

如果你不知道哪个 MCP 好用,可以看下我做的 MCP 导航网站,主打推荐优质 MCP 。

bestofthemcp

它有以下几个特点:

1 )只推荐优质 MCP ,指来源于:官方( modelcontextprotocol )推荐;或 GitHub 上 star 大于 30 ;或来自于著名大公司;

wechat_2025-06-16_201042_230

2 )详细的分类和标签,更方便找到目标 MCP ;

3 )提供 MCP 的 GitHub 参数,协助判断是否优质

wechat_2025-06-16_201436_428

4 )一键安装至 AI IDE 的配置中,省去麻烦的复制粘贴

wechat_2025-06-16_201408_623

感兴趣的朋友可以体验一下,有任何问题都可以联系我。(网站还在早期建设中,欢迎来交流 MCP 呀)

网址:

https://bestofthemcp.com

中国电信是有什么漏洞被人利用了吗?被几百个连贯的电信 ip 持续攻击

By: laov2
16 June 2025 at 21:01
laov2:

从几天前就有爬虫一直在爬网站的目录文件,一开始并没有在意,因为有的本来就是禁止直接访问的。

我还以为是谁在刷 pcdn 下载流量呢,但是封了几个 ip 之后,发现不对劲,就算 ip 给拉黑了,后面还有不断的新 ip 来,同个 ip 段的,之前的 ip 也在继续,看了日志,伪装成各种 ua 在爬,几百万的请求了。

比如一开始是 58.220.40.49 来,后面 58.220.40.50 ,反正后面随机,都是 58.220 段。

我记录的都有 300 多个 ip 了,后面懒得记录了,直接把请求不对的 ip 全自动拉黑了。

主要都是江苏扬州、山东烟台的电信 ip:

43.254 这个用美团查是北京的

49.71

49.86

58.220

117.91

114.230

121.233

123.169

140.75

180.103

180.119

182.34

218.91

221.229

我觉得很神奇啊,能搞到这么多连贯的 ip 。 机房也不至于吧,我查了部分 ip ,显示是家庭宽带,当然也有数据中心机房的,可能查询不准。

DDD 阅读小组纳新

By: gbin
16 June 2025 at 20:40
gbin:

最近在阅读 Domain Driven Design (DDD ),形式如下,

  • 主题:Domain Driven Design 每日一读
  • 时间:每周日至周四晚上 9:00 PM - 10:00 PM Shanghai
  • 会议:MS Teams 会议
  • 形式:一读三问 (分节阅读;有不懂的地方需要讨论吗?有重点内容需要分享吗?有需要总结吗?)

参考之前的阅读主题了解更多情况

按照惯例,每次阅读群组会控制在 6 个人之内,目前有 4 人,纳新 2 人,有兴趣者微信联系我 cHlsb25wZW5n

Win11 不明原因卡顿,重启都不能恢复

16 June 2025 at 20:28
EthanZhuXE2V:

Windows 11 笔记本不明原因整体卡顿,任何操作都变慢,从动画效果到文件打开速度等,但是任务管理器中 CPU 、内存和硬盘占用都不高,cpu 温度也才 40 几度,没有降频。 甚至重启电脑都不能恢复,但是过一段时间又会恢复

大家有遇到过吗

❌
❌