In a Next.js app router project, data can be fetched in multiple places depending on the nature of the data, rendering strategy, and whether the data needs to be accessed at build time, on the server, or on the client. Here’s a breakdown of where to fetch data in Next.js’s app router and when each is appropriate:
### 1. Server Components (default in
- Where: Fetch data directly within server components, like your
- When: Ideal for server-only data, sensitive data, or data that doesn’t need client-side interactivity. Server components can fetch data using async functions and make use of server-only packages (e.g., databases).
- Example:
- Considerations: Server components do not increase the JavaScript sent to the client. However, since they are server-rendered, you may need additional client-side components if you want interactivity.
### 2. Client Components (use
- Where: If you need client-side interactivity, mark the component with
- When: Useful for data that requires client-side interactivity, like managing local state, dynamic data fetching (especially based on user interactions), or when using APIs that are only available on the client.
- Example:
- Considerations: Client components increase the JavaScript bundle size sent to the client, so they should be used when necessary.
### 3. API Routes
- Where: Use
- When: Use API routes when you want to keep logic (like authentication, session checks, or data manipulation) separate from the component. This is especially useful for POST requests, sensitive data handling, or operations that don’t need to be part of the server-rendering flow.
- Example:
- Considerations: API routes offer more flexibility and can be used by both server and client components, which is useful for actions like form submissions or fetching data on demand.
### 1. Server Components (default in
app
directory)- Where: Fetch data directly within server components, like your
page.tsx
or other components under the app
directory.- When: Ideal for server-only data, sensitive data, or data that doesn’t need client-side interactivity. Server components can fetch data using async functions and make use of server-only packages (e.g., databases).
- Example:
import { PrismaClient } from "@prisma/client";
export default async function Page() {
const prisma = new PrismaClient();
const data = await prisma.someModel.findMany();
return (
<div>
{/* Render data */}
</div>
);
}
- Considerations: Server components do not increase the JavaScript sent to the client. However, since they are server-rendered, you may need additional client-side components if you want interactivity.
### 2. Client Components (use
use client
directive)- Where: If you need client-side interactivity, mark the component with
use client
at the top and use data-fetching hooks like useEffect
.- When: Useful for data that requires client-side interactivity, like managing local state, dynamic data fetching (especially based on user interactions), or when using APIs that are only available on the client.
- Example:
"use client";
import { useState, useEffect } from 'react';
export default function ClientComponent() {
const [data, setData] = useState(null);
useEffect(() => {
async function fetchData() {
const response = await fetch('/api/data');
const result = await response.json();
setData(result);
}
fetchData();
}, []);
return <div>{data ? JSON.stringify(data) : 'Loading...'}</div>;
}
- Considerations: Client components increase the JavaScript bundle size sent to the client, so they should be used when necessary.
### 3. API Routes
- Where: Use
pages/api
to create backend API endpoints, which can be called from both server and client components.- When: Use API routes when you want to keep logic (like authentication, session checks, or data manipulation) separate from the component. This is especially useful for POST requests, sensitive data handling, or operations that don’t need to be part of the server-rendering flow.
- Example:
// pages/api/data.ts
import { NextApiRequest, NextApiResponse } from 'next';
import { PrismaClient } from '@prisma/client';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const prisma = new PrismaClient();
const data = await prisma.someModel.findMany();
res.status(200).json(data);
}
- Considerations: API routes offer more flexibility and can be used by both server and client components, which is useful for actions like form submissions or fetching data on demand.
### 4. Middleware (for authentication and access control)
- Where: Use a
- When: Middleware is useful for route-based logic, like authentication or role-based access control, without directly fetching data for rendering. Middleware runs on the edge and can redirect users based on conditions.
- Example:
- Considerations: Middleware is limited in functionality compared to traditional API routes but is highly efficient for edge-based logic.
### 5. Static Fetching (using
- Where: If the data doesn’t change often and you don’t need real-time updates, use static generation with
- When: For data that doesn’t change frequently (e.g., blog posts, product pages) or when optimizing for SEO by generating pages at build time.
- Example:
### Summary
- Use Server Components by default for data fetching when rendering on the server.
- Use Client Components for client-side interactions or dynamic data that changes after initial render.
- Use API Routes for encapsulating backend logic or for requests initiated on the client-side.
- Use Middleware for lightweight route protection or conditionally redirecting users.
- Use Static Fetching for rarely changing content that benefits from static generation (like blog posts).
Each strategy is flexible, and you can mix these approaches depending on the needs of each part of your app.
- Where: Use a
middleware.ts
file in the root directory.- When: Middleware is useful for route-based logic, like authentication or role-based access control, without directly fetching data for rendering. Middleware runs on the edge and can redirect users based on conditions.
- Example:
// middleware.ts
import { NextResponse } from 'next/server';
export async function middleware(request) {
const isAuthenticated = checkAuth(request); // Define your own check
if (!isAuthenticated) return NextResponse.redirect(new URL('/login', request.url));
return NextResponse.next();
}
export const config = {
matcher: '/protected/:path*', // Apply to specific routes
};
- Considerations: Middleware is limited in functionality compared to traditional API routes but is highly efficient for edge-based logic.
### 5. Static Fetching (using
generateStaticParams
for Static Site Generation)- Where: If the data doesn’t change often and you don’t need real-time updates, use static generation with
generateStaticParams
or getStaticProps
in the app directory.- When: For data that doesn’t change frequently (e.g., blog posts, product pages) or when optimizing for SEO by generating pages at build time.
- Example:
import { PrismaClient } from '@prisma/client';
export async function generateStaticParams() {
const prisma = new PrismaClient();
const items = await prisma.someModel.findMany();
return items.map(item => ({ id: item.id }));
}
### Summary
- Use Server Components by default for data fetching when rendering on the server.
- Use Client Components for client-side interactions or dynamic data that changes after initial render.
- Use API Routes for encapsulating backend logic or for requests initiated on the client-side.
- Use Middleware for lightweight route protection or conditionally redirecting users.
- Use Static Fetching for rarely changing content that benefits from static generation (like blog posts).
Each strategy is flexible, and you can mix these approaches depending on the needs of each part of your app.
Forwarded from TechTube 𝕏 تک توب
شرکت VMware که چند پیش وقت استفاده از دو نرم افزار حرفه ای ساخت ماشین مجازی Workstation Pro و Fusion Pro رو برای استفاده شخصی رایگان کرده بود، حالا اعلام کرده که استفاده از اونها حالا برای تمام کاربردها و حتی استفاده تجاری هم رایگان هست و شرکتها هم میتونن از این به بعد به صورت مجانی از اونها استفاده کنن.
این شرکت سال پیش توسط Broadcom خریده شد و تغییر سیاست گسترده ای در این شرکت رو به دنبال داشت که از جمله اونها تعطیلی نسخه مجانی ESXi و تبدیل شدن لایسنسهای خرید یک باره به اشتراک ماهانه و سالانه بود که باعث ناراحتی کاربران زیادی شد و شرکتهای مختلفی برای ماشینهای مجازیشون به نرم افزارهای رقیب مهاجرت کردن.
حالا این شرکت باز هم یک کار مفید انجام داده و کاربران ویندوز و لینوکس میتونن با Workstation Pro و کاربران مک Fusion Pro به طور رایگان میتونن ماشین مجازی بالا بیارن و روی اون سیستم عاملهای مختلف نصب کنن. این نرم افزارها از اینجا قابل دانلود هستن ولی قبل از دانلود نیاز به ساخت اکانت برودکام دارین.
🔎 theverge
📍 @TechTube
این شرکت سال پیش توسط Broadcom خریده شد و تغییر سیاست گسترده ای در این شرکت رو به دنبال داشت که از جمله اونها تعطیلی نسخه مجانی ESXi و تبدیل شدن لایسنسهای خرید یک باره به اشتراک ماهانه و سالانه بود که باعث ناراحتی کاربران زیادی شد و شرکتهای مختلفی برای ماشینهای مجازیشون به نرم افزارهای رقیب مهاجرت کردن.
حالا این شرکت باز هم یک کار مفید انجام داده و کاربران ویندوز و لینوکس میتونن با Workstation Pro و کاربران مک Fusion Pro به طور رایگان میتونن ماشین مجازی بالا بیارن و روی اون سیستم عاملهای مختلف نصب کنن. این نرم افزارها از اینجا قابل دانلود هستن ولی قبل از دانلود نیاز به ساخت اکانت برودکام دارین.
🔎 theverge
📍 @TechTube
توی اسپم هام اینو دیدم. دستش درد نکنه خیلی بی حوصله بودم حداقل روزم رو ساخت 😂
فقط اون best regards آخرش 🫠😁
این یه ایمیل قدیمی من هست که hotmail هست و شاید قدیمی تر ها بیشتر با hotmail و outlook آشنا باشن ولی خب ایمیل خوبی هم هست و دوستش داشتم ولی خیلی خیلی اسپم گرفت. یه موردی که وجود داره وقتی شما ایملتون رو توی یه سایت زده باشید و اون سایت هک بشه، هکر ها اون ایمیل های ثبت نام شده و خصوصا Hash پسورد ها رو حتما چک میکنن و باعث میشه اسپم بگیرید.
مثلا توی این سایت میتونید ایمیلتون رو بزنید ببینید توی چه سایت هایی که هک شدن ثبت نام کرده بودید و از کجا ها اطلاعاتتون ممکنه درز کرده باشه.
البته یه سری سایت ها هم کلا باعث اسپم گرفتن میشه لذا هر جایی ثبت نام نکنید.
حالا یه روش دیگه هم توضیح میدم در پست بعدی که بتونید به طور کل ایمیلتون رو مخفی کنید و با این کار شما ایمیل اصلیتون رو توی جایی که ثبت نام میکنید وارد نمی کنید و بجاش از یه جایگزین استفاده میکنید که اون به صورت یه واسطه ایمیل رو به ایمیل اصلیتون میفرسته و اینجوری ایمیلتون رو نیازی نیست وارد کنید توی سایتی که ممکنه براتون اسپم بفرسته.
فقط اون best regards آخرش 🫠😁
این یه ایمیل قدیمی من هست که hotmail هست و شاید قدیمی تر ها بیشتر با hotmail و outlook آشنا باشن ولی خب ایمیل خوبی هم هست و دوستش داشتم ولی خیلی خیلی اسپم گرفت. یه موردی که وجود داره وقتی شما ایملتون رو توی یه سایت زده باشید و اون سایت هک بشه، هکر ها اون ایمیل های ثبت نام شده و خصوصا Hash پسورد ها رو حتما چک میکنن و باعث میشه اسپم بگیرید.
مثلا توی این سایت میتونید ایمیلتون رو بزنید ببینید توی چه سایت هایی که هک شدن ثبت نام کرده بودید و از کجا ها اطلاعاتتون ممکنه درز کرده باشه.
البته یه سری سایت ها هم کلا باعث اسپم گرفتن میشه لذا هر جایی ثبت نام نکنید.
حالا یه روش دیگه هم توضیح میدم در پست بعدی که بتونید به طور کل ایمیلتون رو مخفی کنید و با این کار شما ایمیل اصلیتون رو توی جایی که ثبت نام میکنید وارد نمی کنید و بجاش از یه جایگزین استفاده میکنید که اون به صورت یه واسطه ایمیل رو به ایمیل اصلیتون میفرسته و اینجوری ایمیلتون رو نیازی نیست وارد کنید توی سایتی که ممکنه براتون اسپم بفرسته.
code2 - کد۲
توی اسپم هام اینو دیدم. دستش درد نکنه خیلی بی حوصله بودم حداقل روزم رو ساخت 😂 فقط اون best regards آخرش 🫠😁 این یه ایمیل قدیمی من هست که hotmail هست و شاید قدیمی تر ها بیشتر با hotmail و outlook آشنا باشن ولی خب ایمیل خوبی هم هست و دوستش داشتم ولی خیلی خیلی…
مثلا این ایمیلی که براتون گفتم رو توی این سایت که براتون گفتم یعنی https://haveibeenpwned.com زدم و این جاها رو تطبیق داد که توی نشتی هایی که از این سایت ها وجود داشته ایمیل بوده. که همون طور که میبینید تقریبا همشون شرکت ها و سرویسهای بزرگی هستند و شرکت های کوچیکی نیستند!
از توییتر گرفته تا dropbox و حتی سرویس رایچت ایرانی هم نشتی که داشته اینجا لیست شده که اون موقعی که یه نفوذ داشتن گویا تقریبا یک میلیون ایمیل از دیتابیسشون درز پیدا کرده بوده که کم نیست. لذا فکر نکنید سایت های معروف و بزرگ هک نمیشن و اطلاعاتتون اونجا همیشه امن هست! نه لزوما اینطور نیست و ممکنه اتفاقای بدی براشون بیفته :)
هرچند احتمالی که با توجه به تدابیری که شرکتهای خیلی بزرگ میچینن بسیار کاهش پیدا میکنه. ولی در مجموع جانب احتیاط رو همواره رعایت کنید. اما صرفا این قضیه باعث نشه که بخواید همه چیز و از همه جا مخفی کنید و از سرویس های زیر زمینی و این ها استفاده کنید. مثلا این اینستاگرام و لینکدین و این ها که تو ایران در و پیکر ندارن لذا دیدید که با یه جابجا شدن وی پی ان و تغییر ip هم ممکنه یوهو گیر بدن یا قفل کنن اکانت و خلاصه دردسر بشه
از توییتر گرفته تا dropbox و حتی سرویس رایچت ایرانی هم نشتی که داشته اینجا لیست شده که اون موقعی که یه نفوذ داشتن گویا تقریبا یک میلیون ایمیل از دیتابیسشون درز پیدا کرده بوده که کم نیست. لذا فکر نکنید سایت های معروف و بزرگ هک نمیشن و اطلاعاتتون اونجا همیشه امن هست! نه لزوما اینطور نیست و ممکنه اتفاقای بدی براشون بیفته :)
هرچند احتمالی که با توجه به تدابیری که شرکتهای خیلی بزرگ میچینن بسیار کاهش پیدا میکنه. ولی در مجموع جانب احتیاط رو همواره رعایت کنید. اما صرفا این قضیه باعث نشه که بخواید همه چیز و از همه جا مخفی کنید و از سرویس های زیر زمینی و این ها استفاده کنید. مثلا این اینستاگرام و لینکدین و این ها که تو ایران در و پیکر ندارن لذا دیدید که با یه جابجا شدن وی پی ان و تغییر ip هم ممکنه یوهو گیر بدن یا قفل کنن اکانت و خلاصه دردسر بشه
code2 - کد۲
مثلا این ایمیلی که براتون گفتم رو توی این سایت که براتون گفتم یعنی https://haveibeenpwned.com زدم و این جاها رو تطبیق داد که توی نشتی هایی که از این سایت ها وجود داشته ایمیل بوده. که همون طور که میبینید تقریبا همشون شرکت ها و سرویسهای بزرگی هستند و شرکت…
پس جوری که خودتون میدونید براتون بهتر هست عمل کنید که بعدا اذیت نشید. و هر سرویسی که لزوما یکی معرفی کرد لزوما قرار نیست کمک کنه.
سرویسی هم که گفتم معرفی میکنم این سرویس از فایرفاکس هست به نام Firefox Relay:
https://relay.firefox.com/
توی این سرویس وقتی ثبت نام میکنید تو ورژن رایگان فکر میکنم میتونید تا ۵ تا ایمیل بسازید. همهی این ایمیل ها در واقع یه رابط بین ایمیل شما و جایی که استفاده میکنید میشه.
شما با این ایمیل توی یه سایتی ثبت نام میکنید و ایمیل هایی که از طرف اون سایت ارسال میشه میاد توی اینباکس شما و اینطوری ایمیل شما مخفی خواهد ماند! توی پلن رایگان قابلیت reply و پاسخ دادن نداره ولی توی پلن های پیشرفته تر میشه پاسخ هم داد. جالبه که توی پلن پیشرفته ترش قابلیت ماسک کردن شماره موبایل رو هم داره.
البته طبیعتا برای ما تو ایران مطرح نیست یا حداقل من که حوصله ندارم برم چک کنم. :))
خلاصه پس این هم یه محصول جالب و مفید از شرکت بزرگ فایرفاکس!
@code2_ir
https://relay.firefox.com/
توی این سرویس وقتی ثبت نام میکنید تو ورژن رایگان فکر میکنم میتونید تا ۵ تا ایمیل بسازید. همهی این ایمیل ها در واقع یه رابط بین ایمیل شما و جایی که استفاده میکنید میشه.
شما با این ایمیل توی یه سایتی ثبت نام میکنید و ایمیل هایی که از طرف اون سایت ارسال میشه میاد توی اینباکس شما و اینطوری ایمیل شما مخفی خواهد ماند! توی پلن رایگان قابلیت reply و پاسخ دادن نداره ولی توی پلن های پیشرفته تر میشه پاسخ هم داد. جالبه که توی پلن پیشرفته ترش قابلیت ماسک کردن شماره موبایل رو هم داره.
البته طبیعتا برای ما تو ایران مطرح نیست یا حداقل من که حوصله ندارم برم چک کنم. :))
خلاصه پس این هم یه محصول جالب و مفید از شرکت بزرگ فایرفاکس!
@code2_ir
برخلاف آنچه شاید بعضی فکر میکنند که شغل های مرتبط با ICT و فناوری اطلاعات معمولا شغل های آسون و بی دردسری هستند، خیلی از اوقات کارکردن توی این مشاغل مثل هر شغل دیگری چالشهای خودش رو داره. چیزی که شاید جوانترهایی که قصد یا علاقه به این حوزه رو دارند خیلی متوجه نباشند.
طبیعتا یکی از اولین نکاتی که به ذهن میرسه ساعتهای طولانی و ممتد نشستن و یکجا قرار گرفتن هست که معمولا باعث کم تحرکی و خستگی و چاقی میشه.
برای همین بهتره هر یک ساعت از جای خودتون بلند بشید و اون کمر رو یه حرکتی بدید. (کاش خودم گوش میدادم 😅 )
یه موضوع دیگه که باز بین خیلی ها رایج هست بیدار موندن و شب بیداری هست. طبیعی هست که افرادی دیروقت تمرکز بیشتری دارند یا شب ها کار کردن براشون راحت تره. به قول خارجی ها night owl هستند و یک سری early birds. اما اگر کنترل شده نباشه میتونه صدمات زیادی بزنه. مثلا طبیعتا اگر من تا دیروقت شب ها کار میکنم، ازم انتظار میره که فرداش به مقدار لازم استراحت کنم ولی اگر محصل هستم یا باید سرکار برم یا در هر صورت نتونم استراحت کنم این تبدیل به یک چرخه معکوس میشه. شب بیدار میمونی و فرداش خسته ای برای همین خوب کار نمیکنی و مجبوری دوباره استراحت کنی یا یکم بخوابی و بعد دوباره شب خوابت نمیبره و به همین صورت این چرخه ادامه پیدا میکنه. باز میگم این بستگی به آدم داره ولی هر چقدر بشه یه روتین منظم و دقیق داشت به نظرم برآیندش بهتره خصوصا برای دانش آموزان یا افرادی که ابتدای مسیر شغلی هستند.
بحث های دیگری هم طبیعتا هست مثل استرس کاری، ساعات طولانی کار و سرعت تغییر و تحول بسیار بالا در این صنعت که میشه برای هر کدوم بحث کرد ولی خب همین چند تا دونه کفایت هست فعلا. در مجموع میخواستم بگم اگر توی این حوزه فعالیت میکنید به هوای این که بزار بعد اینکه پروژه فروش رفت و نمیدونم زودتر کار کنم پولدار میشم یا فلان، بقیه کار ها رو رها نکنید که میتونه صدمه زیادی بزنه.
طبیعتا یکی از اولین نکاتی که به ذهن میرسه ساعتهای طولانی و ممتد نشستن و یکجا قرار گرفتن هست که معمولا باعث کم تحرکی و خستگی و چاقی میشه.
برای همین بهتره هر یک ساعت از جای خودتون بلند بشید و اون کمر رو یه حرکتی بدید. (کاش خودم گوش میدادم 😅 )
یه موضوع دیگه که باز بین خیلی ها رایج هست بیدار موندن و شب بیداری هست. طبیعی هست که افرادی دیروقت تمرکز بیشتری دارند یا شب ها کار کردن براشون راحت تره. به قول خارجی ها night owl هستند و یک سری early birds. اما اگر کنترل شده نباشه میتونه صدمات زیادی بزنه. مثلا طبیعتا اگر من تا دیروقت شب ها کار میکنم، ازم انتظار میره که فرداش به مقدار لازم استراحت کنم ولی اگر محصل هستم یا باید سرکار برم یا در هر صورت نتونم استراحت کنم این تبدیل به یک چرخه معکوس میشه. شب بیدار میمونی و فرداش خسته ای برای همین خوب کار نمیکنی و مجبوری دوباره استراحت کنی یا یکم بخوابی و بعد دوباره شب خوابت نمیبره و به همین صورت این چرخه ادامه پیدا میکنه. باز میگم این بستگی به آدم داره ولی هر چقدر بشه یه روتین منظم و دقیق داشت به نظرم برآیندش بهتره خصوصا برای دانش آموزان یا افرادی که ابتدای مسیر شغلی هستند.
بحث های دیگری هم طبیعتا هست مثل استرس کاری، ساعات طولانی کار و سرعت تغییر و تحول بسیار بالا در این صنعت که میشه برای هر کدوم بحث کرد ولی خب همین چند تا دونه کفایت هست فعلا. در مجموع میخواستم بگم اگر توی این حوزه فعالیت میکنید به هوای این که بزار بعد اینکه پروژه فروش رفت و نمیدونم زودتر کار کنم پولدار میشم یا فلان، بقیه کار ها رو رها نکنید که میتونه صدمه زیادی بزنه.
Forwarded from PerspectiveData | چشمانداز دیتا
gemini_for_google_workspace_prompting_guide_101_persian_version.pdf
369.9 KB
♨️ اتفاقی جدید و هیجان انگیز از پرسپکتیو دیتا! ♨️
📢 ترجمه فارسی اختصاصی راهنمای پرامپتنویسی ۱۰۱ گوگل منتشر شد!
🔹 معرفی: گوگل بهتازگی راهنمایی جامع برای پرامپتنویسی منتشر کرده است که اکنون تیم پرسپکتیو دیتا نسخه فارسی این راهنما را به صورت اختصاصی برای شما آماده کرده است.
با مطالعه این راهنما، میتوانید:
✅ مهارتهای پرامپتنویسی خود را ارتقا دهید
✅ تعاملات خود با مدلهای هوش مصنوعی را بهبود بخشید
✅ از قابلیتهای پیشرفته هوش مصنوعی در کار و زندگی بهرهبرداری کنید
📈 چرا این راهنما برای شماست؟
اگر میخواهید نتایج دقیقتر، سریعتر و کاربردیتر از مدلهای هوش مصنوعی بگیرید، این راهنما گنجینهای بینظیر برای شماست.
#هوش_مصنوعی #پرامپت_نویسی #گوگل #Gemini #بهرهوری
📡 پرسپکتیو دیتا | رسانه داده و گزارش کسبوکارها
📢 ترجمه فارسی اختصاصی راهنمای پرامپتنویسی ۱۰۱ گوگل منتشر شد!
🔹 معرفی: گوگل بهتازگی راهنمایی جامع برای پرامپتنویسی منتشر کرده است که اکنون تیم پرسپکتیو دیتا نسخه فارسی این راهنما را به صورت اختصاصی برای شما آماده کرده است.
با مطالعه این راهنما، میتوانید:
✅ مهارتهای پرامپتنویسی خود را ارتقا دهید
✅ تعاملات خود با مدلهای هوش مصنوعی را بهبود بخشید
✅ از قابلیتهای پیشرفته هوش مصنوعی در کار و زندگی بهرهبرداری کنید
📈 چرا این راهنما برای شماست؟
اگر میخواهید نتایج دقیقتر، سریعتر و کاربردیتر از مدلهای هوش مصنوعی بگیرید، این راهنما گنجینهای بینظیر برای شماست.
#هوش_مصنوعی #پرامپت_نویسی #گوگل #Gemini #بهرهوری
📡 پرسپکتیو دیتا | رسانه داده و گزارش کسبوکارها
code2 - کد۲
gemini_for_google_workspace_prompting_guide_101_persian_version.pdf
از کانال های جذاب که داده های مختلف کسب و کارهای ایران و مطالب به روز فضای استارتاپ رو گردآوری و منتشر میکنه
دوستان علاقه مند دنبال کنند. 👇
https://t.me/perspective_data
دوستان علاقه مند دنبال کنند. 👇
https://t.me/perspective_data
Telegram
PerspectiveData | چشمانداز دیتا
دیتا و هوش مصنوعی در کسب و کار
آرشیو گزارش کسب و کارها و صنایع
ارتباط با ما: @perspective_data_admin
لینکدین: https://www.linkedin.com/company/perspectivedata
آرشیو گزارش کسب و کارها و صنایع
ارتباط با ما: @perspective_data_admin
لینکدین: https://www.linkedin.com/company/perspectivedata
سلام خدمت همراهان همیشگی کانال بین المملی کد۲
مجموعه ویدیویی به نام هوش مصنوعی های پشم ریزان در دست تهیه است و امشب اولین قسمتش إنشالله قرار داده میشه.
از شما اعضای گرامی دعوت میکنم تا با اشتراک این مطالب به رشد کانال کمک فرمایید.
همچنین شما میتوانید کمکهای نقدی خود را به شماره حساب 33 33 بانک ملی ایران شعبه اسکان واریز بفرمایید.
باتشکر
روابط عمومی کد۲
@code2_ir
مجموعه ویدیویی به نام هوش مصنوعی های پشم ریزان در دست تهیه است و امشب اولین قسمتش إنشالله قرار داده میشه.
از شما اعضای گرامی دعوت میکنم تا با اشتراک این مطالب به رشد کانال کمک فرمایید.
همچنین شما میتوانید کمکهای نقدی خود را به شماره حساب 33 33 بانک ملی ایران شعبه اسکان واریز بفرمایید.
باتشکر
روابط عمومی کد۲
@code2_ir
Media is too big
VIEW IN TELEGRAM
#متفرقه
به رسم پایان هر سال میلادی، گوگل ویدیویی تحت عنوان Year in Search 2024 در صفحه اصلی سایتش میذاره و همینطور نتایج جستجوهای پر استقبال یا غیر منتظره رو لیست میکنه. ویدیویی که در صفحه اصلی گوگل نمایش پیدا کرد و سال ۲۰۲۴ رو سالی احساسی بیان کرده، بیشتر برای آمریکا ساخته شده و در مورد جریانات این کشور هست اما به صورت عمومی در کانال یوتیوب خود گوگل قرار گرفته و قیدی مختص به آمریکا نداره.
نکته جالب برای من این بود که هیچ خبری از جنگ در این ویدیو نیست. نهایت غم و تراژدی نمایش داده شده طوفان میلتون و بی خانمان شدن یه سری از افراد بود. بله هیچ کس نمیگه ناراحت کننده نیست و قطعا آدم از این مسأله خوشحال نمیشه اما این که چه میزان از تسلیحات نظامی آمریکا در خاورمیانه بر سر فرزندان و زنان فرود آمدند یا اینکه به جهت قدرت طلبی کشورها چه میزان سرباز در روسیه و اکراین و دیگر کشورها کشته شدند یا حتی به مسائل داخلی دیگه ای در خود آمریکا مثل ترور ترامپ هیچ اشاره ای نمیشه. به قول یه بنده خدایی غرب منطقی از تفکری غزل پیشه است و جدیت سردی است که تنها با خنده بزک شده!
قطعا هیچ کشوری کامل نیست. چه ما، چه غرب، چه آمریکا و هزاران کشور دیگه هر کدام ویژگیهای خوب و بد خودشان را دارند. اما چون نیک بنگری ....
به رسم پایان هر سال میلادی، گوگل ویدیویی تحت عنوان Year in Search 2024 در صفحه اصلی سایتش میذاره و همینطور نتایج جستجوهای پر استقبال یا غیر منتظره رو لیست میکنه. ویدیویی که در صفحه اصلی گوگل نمایش پیدا کرد و سال ۲۰۲۴ رو سالی احساسی بیان کرده، بیشتر برای آمریکا ساخته شده و در مورد جریانات این کشور هست اما به صورت عمومی در کانال یوتیوب خود گوگل قرار گرفته و قیدی مختص به آمریکا نداره.
نکته جالب برای من این بود که هیچ خبری از جنگ در این ویدیو نیست. نهایت غم و تراژدی نمایش داده شده طوفان میلتون و بی خانمان شدن یه سری از افراد بود. بله هیچ کس نمیگه ناراحت کننده نیست و قطعا آدم از این مسأله خوشحال نمیشه اما این که چه میزان از تسلیحات نظامی آمریکا در خاورمیانه بر سر فرزندان و زنان فرود آمدند یا اینکه به جهت قدرت طلبی کشورها چه میزان سرباز در روسیه و اکراین و دیگر کشورها کشته شدند یا حتی به مسائل داخلی دیگه ای در خود آمریکا مثل ترور ترامپ هیچ اشاره ای نمیشه. به قول یه بنده خدایی غرب منطقی از تفکری غزل پیشه است و جدیت سردی است که تنها با خنده بزک شده!
قطعا هیچ کشوری کامل نیست. چه ما، چه غرب، چه آمریکا و هزاران کشور دیگه هر کدام ویژگیهای خوب و بد خودشان را دارند. اما چون نیک بنگری ....
این شرکت توی لیندکین آشنا شدم و برای یه موقعیت قرار شد task رو انجام بدم. یه کار خیلی جالبی که دارن این که ریسورس های مختلف برای job role هاشون رو لیست کردن. به نظرم خیلی کار جالب و قشنگی هست.
منابع هم انصافاً دستچین و خوب بود 👌
https://payever.org/careers/technical-faq
منابع هم انصافاً دستچین و خوب بود 👌
https://payever.org/careers/technical-faq
👨💻When to Use Which?
#javascript
🏹 Arrow Functions:
Short, simple functions or callbacks (e.g., event listeners, array methods like map, filter, reduce).
When you need to preserve "this" from the enclosing scope.
👍 Normal Functions:
When defining methods in objects or classes.
When you need dynamic "this" or access to the "arguments" object.
For constructors or functions requiring the "new" keyword.
@code2_ir
#javascript
🏹 Arrow Functions:
Short, simple functions or callbacks (e.g., event listeners, array methods like map, filter, reduce).
When you need to preserve "this" from the enclosing scope.
👍 Normal Functions:
When defining methods in objects or classes.
When you need dynamic "this" or access to the "arguments" object.
For constructors or functions requiring the "new" keyword.
@code2_ir
❔Interfaces or Types?
#javascript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
2. Extension/Inheritance:
3. Declaration Merging (Interface-only feature):
4. Union Types (Type-only feature):
5. Computed Properties:
General recommendations:
- Use
- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
#javascript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
// Interface
interface User {
name: string;
age: number;
}
// Type
type User = {
name: string;
age: number;
}
2. Extension/Inheritance:
// Interface extends interface
interface Animal {
name: string;
}
interface Dog extends Animal {
bark(): void;
}
// Type extends type (using intersection)
type Animal = {
name: string;
}
type Dog = Animal & {
bark(): void;
}
3. Declaration Merging (Interface-only feature):
// Interfaces can be defined multiple times and will merge
interface User {
name: string;
}
interface User {
age: number;
}
// Result: User has both name and age
// Types cannot be reopened
type User = { name: string }
// Error: Cannot redeclare type User
type User = { age: number }
4. Union Types (Type-only feature):
// Only possible with type
type Status = "pending" | "approved" | "rejected";
// Can't do this with interface
type StringOrNumber = string | number;
5. Computed Properties:
// Works with type
type Keys = "firstname" | "lastname";
type DudeType = {
[key in Keys]: string;
}
// Doesn't work with interface
interface DudeInterface {
[key in Keys]: string; // Error
}
General recommendations:
- Use
interface
when:- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
type
when:- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
type
because it's more flexible, but both are valid choices. The TypeScript team originally recommended interfaces, but types have become equally well-supported.