Skip to content

In This Repository, I was get notes all session of defConf 1.0.

Notifications You must be signed in to change notification settings

shahidul50/devConf-1.0-Notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

devConf 1.0 Notes

Web View এর মাধ্যমে ভালভাবে দেখতে হলে এই Link এ ঘুরে আসুন - devConf 1.0 Notes

Organized by : Learn with Sumit (Sumit Bai)

https://youtu.be/e1bAqdy3pS4?t=4

  • Saif Hasan (Lead product Manager- WeDevs) (Session Topic : Productivity)(Time: 6 min → 32 min)

    About

    Working as the Lead Product Manager at WeDevs. Where developers are focused on code, architecture, performance, and engineering, I would focus on the big picture of "what are we trying to do" and on the details of the user experience, the feature set, and the way the product will get used. It is almost impossible to document a complete list of the responsibilities that I maintain. Ex Product Manager at Poptin & Premio.

    Notes:

    Why we get less done although working more hours?

    How to grow your productivity?

    • Focus your main or actual work.
    • Distraction is everywhere. But we need to avoid them.
    • Avoid multitasking and context switching.
    • Planning your day ahead.
    • Jot down the top three big tasks of the day.
    • Eliminate Distractions. Use website blockers if required. Try working with zero notification- like no phone, no email, no interruptions.
    • Working with short bursts of impactful sessions.
    • Working framework: Like ⇒ Pomodoro Technique ⇒(Work 25min then rest 5min) 2. Flowtime.
    • The art of Prioritization: 1. 2-min rule ⇒(Just think 2 min what you will do or what your next task) 2. KonMari Method ⇒ (apner jibone ja doker nai ta fele dow or bad dow(mainly clean up your destruction.)) 3. Eisenhower matrix 4. Time blocking Method ⇒(Time blocking helps to get deep work done) 4. eat the Frog method⇒ ( দিনের শুরুতে আপনার আজকের সবচেয়ে কঠিন কাজটা দিয়ে শুরু করা উচিত।)

    Eisenhower Matrix

    Eisenhower Matrix

    Productivity Tools:

    • Notion
    • Todoist
    • Whimsical
    • Trello
    • Focus Mode

    Tips and Tricks:

    • reduce unnecessary meetings to save time

    • This could have been a long message/email

    • Amazon tricks for meeting

      For starters, whoever leads a meeting at Amazon has to write a document usually about sis pages long, to pass out at the start of it. Then everybody spends about 20 to 30 minutes silently reading and digesting what’s on that document, before going over the entire thing together, page by page.

      Also: There’s no PowerPoint.Ever.

    • Don’t call a meeting without meeting agenda

    • Maintain great communication

    • communicate if you are stuck.

    • No social media/news/email checking in the earlier part of the day.

    • learn keyboard shortcuts

    • Health Hacks

      • Use good chair with black support. Buy a lumber roll.
      • Wear blue light protected glasses(and turn on the Night Mode on screen)
      • after every 25-30 min work, walk 5min
  • Masrur Hannan(Founder- Jadupc) (Session Topic : User Experience Design) (Time: 36 Min → 46 min)

    About

    Twenty years of experience in the technology with three major projects: ePaper, JaduPC and acciGone. Projects are in different verticals - newspaper publishing web application, android based custom operating system environment, Iot and AI technologies for road safety - leading to autonomous vehicles.

    Work experience with: eProthomAlo, eDailyStar, eSamakal, bdjobs, A2i, convay(bangladeshi zoom app. ) ux!

    Note:

    • The Art: User Interfaces, Design Principles.
    • The science: user research ⇒ Surveys, Interviews and observation, Studies to identify USER needs and goals, Information Architecture, Data Analysis.

    Journey Map:

    • Current State: identify and document existing problems, Identify relevant solutions.
    • Future State: Reinvent journeys for the better, Conceive new experiences

    💡 Note: For any tool or technology being developed- Inspiration Research should be MANDATORY! Will you use a research-first Or hypothesis-first approach?

    Research- First Approach:

    • Begin by conduction primary user research
    • Ensures real data is used.
    • Lengthy and expensive, misses opportunity for collaboration.

    Quick and easy User Research:

    • Surveys
    • Interviews
    • Inspiration research
    • Observation studies
    • User testing starting with prototypes.

    Masrur Hanan(Jadupc).png

    Masrur Hanan(Jadupc) sosial links.png

    Convay UX.png

  • Ragib Ehsan Shadab(Co-Founder and CEO at JaduPC) (Session Topic : Cybersecurity) (Time: 47 min → 1 hours)

    About

    International student with a passion towards access to digital literacy and cyber-security.

    Notes:

    Input Sanitization/Validation

    Software download : free and open source community and genuine

    cybersicurity method.png

  • Shuvro Sarker(VP, Software Development, Software Research & Engineering, Product & Technology-bKash Limited) (Session Topic : App Development) (1 hours 3 min → next video 10 min)

    About

    He is interested in human behavior, technology and everything in between. He aims to deliver the benefits of technology and creativity to more and more people and strive to build a positive atmosphere of growth with the help of the talented personalities he works with.

    Notes:

    Subrou Sarker presentation slide 1.png

    Subrou Sarker presentation slide 2.png

    Subrou Sarker presentation slide 3.png

    Subrou Sarker presentation slide 4.png

    Subrou Sarker presentation slide 5.png

    Subrou Sarker presentation slide 6.png

    Subrou Sarker presentation slide 7.png

    Subrou Sarker presentation slide 8.png

    Subrou Sarker presentation slide 9.png

    Subrou Sarker presentation slide 10.png

    Subrou Sarker presentation slide 11.png

    Flutter UI Methodology: Declarative

https://youtu.be/xo7ukQaa1AQ

  • Empowering the Gig Economy: Unleashing the Potential of Freelance Marketplaces (Session Topic : Freelancing)(Time: 15 min → 52 min)

    • Jakir Hossain (Author & Web Developer/Programmer)

      About

      Experienced mobile app developer working on both iOS and Android. Passionate about Artificial Intelligence and trying to build intelligent software. Skilled on Swift, Java, Python & relevant technologies.

    • Ali Hossain(Founder & Educator→ Procoder BD)

      About

      I’m a Front End Web developer who is passionate about making error-free websites with 100% client satisfaction. I have a passion for learning and sharing my knowledge with others as publicly as possible. I love to solve real-world problems. I am strategic, goal-oriented, and always work with an end goal in mind. Over the past years, I created 100s of websites for my clients. I pride myself on doing quality work and maintain excellent communication.

    • Minhazul Asif(Founder & CEO→ Codemanbd)

      About

      A proud Entrepreneur, Instructor, Web Developer, Freelancer & Cyber Sucurity Expert. He is a Top Rated Freelancer, Web Development @Upwork / Level-2 seller, Fiverr. As freelancer he has completed 1000+ Projects of 89 country's 862 client's at various marketplaces since 2012

    • Saider Rahaman Shetu(Founder & Educator ⇒ JS Bangladesh)

      About

      Saidur Rahman Setu is an entrepreneur and founder of JS Bangladesh. He loves to create content on programming and dreams to create a learning hub where newbies can learn programming from the very beginning. He believes no matter how hard we try we can't be that good in programming in general if we can't generate quality beginners. He along with JS Bangladesh is working on that dream where every potential learner would be able to learn and take Bangladesh to a new standard in the world.

    • Sunny Sultan(Co-founder & CEO ⇒ 6am Tech)

      About

      Sunny Sultan is a tech entrepreneur and co-founder of 6amTech, a company that specializes in delivering innovative software solutions for businesses. With over 10 years of industry experience, Sunny is a results-oriented software engineer and project manager who leverages cutting-edge technologies to help his clients achieve their business goals. He's a proactive innovator with a strong vision for the future of 6amTech and is committed to cultivating a positive and collaborative culture within the organization. Along with his work commitments, Sunny is a devoted family man with two young children and a passion for bodybuilding, and he strongly believes that this dedication to physical well-being fuels his entrepreneurial drive

    Notes:

    If you are going to freelancing to know about the technology. Which technology, What work? Known About What is freelancing?

    • First You know a skill Which is online sellable.
    • When you are think you are confident for work then create a account freelencer.com. Then explore existing job. Work on a project offline. Make some projects. Then you create your portfolio website then go to other marketplace and explore this.
    • You can earn to create a blog website with blogging.
    • Active on: LinkedIn, Quora, Instagram, Redid
    • Connect people which are work your type.
    • Contribute Open-Source Project

    Remote job site:

    CV maker online template:

    💡 Note: Apply করার সময় Mail এ একটা Short Video দিলে Better হয়।যেখানে নিজের সম্পর্কে এবং কি কি কাজ করছি সেই সম্পর্কে ২ মিনিট Short Video করে দেওয়া যায়।

    Time Management:

    • Debug and schedule your daily work on priority base.
  • Tapas Adhikary (Head of Content ⇒ Showwcase)(Session Topic : Full Stack) (Important Session)(Time: 1 hours 1 min → 1 hours 26 min

    About

    In love with computers and programming since the year 2000. Engineering Graduate from Jalpaiguri Govt Engineering College(JGEC). Worked for Dell PerotSystems for first 2.5 years and then joined Novell India pvt ltd. I was continuing my journey since then. Over the period, Novell became NetIQ and then MicroFocus but, the journey continues.


    I am a Full Stack Developer or Engineering. So

    • I know to code in JavaScript.
    • I know React.
    • I can make API calls
    • I know Rest API (Oh! GraphQL, too)
    • I know to create Database tables
    • Hang on (- I know MERN Stack)

    Do you know?

    • How to write Semantic HTML?
    • How to create Layouts?
    • How to make a page Responsive?
    • How to Debug an Async Call?
    • How to manage Database Connections?
    • How to Handle Performance Issues?
    • How to Cache Data?
    • How to Manage Authentications and Authorizations?
    • How to Deploy for Scale?
    • How to understand what your Users want?

    As a Full Stack developer, how we work?

    • Firstly , Collect or Gather a client requirement. Then I start understanding client requirements.
    • Secondly, I understanding with my team , what type of data we will work. Like Our Applications will work what kind of data.
    • Thirdly, we are choose what kind of technology we are use of my Application.
    • Fourthly, We make design for this application and make it Responsive. Then we are think user Accessibility for this application. Note that, we are think this when write the first code, not then application delivery.
    • Fifthly, we think security concern for this application. Like Authentication, Authorization, Performance, Data input Validation, Data Access Validation.
    • Sixthly, we think Database Management , Database Monitoring.
    • Seventhly, we think for Deployment Strategy. My Application is ready then where I will deploy. Understanding the customer demand where we will deploy cloud or others.
    • Finally, when we give the Application to the customer. Go to the customer for user feedback. How they use this application comfortable or not.

    Full stack enginner life cycle.png

    Development Platform:

    How to connect the Technology Dots?

    • Programming Basics (variable, data type, condition, operator, loop, array etc.)
    • Internet & Web (deference between http and https, what is browser, how browser works)
    • Version Control (what is git and GitHub, how git work, use of git, how GitHub work etc. use of GitHub)
    • Front-End Fundamentals ( learn JS fundamentals, how JavaScript works background, how to work call-Stack, how to work asynchronous program, how to write Syntax.
    • Library/Framework( React or Vue or Anguler)
    • Back-End Development( node JS, Python, learn on your demand.)
    • DBMS ( learn on database management system, what is table/document, why we need table, what is row/collection and how it work. how we connect database in our project.)
    • Caching ( how to cache data, caching methodology, )
    • Hosting infrastructure ( why AWS better, why netlify is not batter, why azure batter. understanding hosting decision factor )
    • Development
    • Documentation.

    💡 Notes: MARN and MERN is not a Full Stack Development.

  • Md. Rashidul Islam (Head of Operations ⇒ TechnoNext)(Session Topic: Industry insights) (Time: 1 hours 36 min → 1 hours 54 min)

    About

    He has graduated on CSE from Bangalore University. He is serving in the software industry for more than 19 years and already worked for some of the giant software companies around the globe like Sony Mobile, FujiSoft, Access Japan, Access Korea, Flextronics, Brother, Kyocera, SourceNext etc. He has strong knowledge on IoT, Machine Learning, Web Technology etc.

    Note:

    Programming এর পাশাপাশি এই দুইটা Concept ভালোভাবে শিখতে হবে।

    • Object Oriented Concept
    • Design Pattern

    Industry ⇒ Boding Pass Queue Machine, ARM(Aircraft Resource Management) Software, OTA(Online Travel Agency).

    https://youtu.be/xqi_zMR-VnI

  • M. Mahbubur Rahman ( CTO ⇒ iViveLabs & Technical Co-founder ⇒ Tutoriaa) (Session Topic : Entrepreneurship)(Time: 9 min → 30 min)

    About

    Assalamu Alaikum, I would like to call myself a solution architect. It's been 25 years since I started coding, precisely in 1998. Having a hands on experience with a wide range of tools, I still enjoy coding in php, laravel, vue, react. Currently working as CTO in my founded company iViveLabs and also Technical Co-founder of an EdTech company called Tutoriaa.

    Notes:

    Books: The Lean Startup

    Inspired idea Example:

    • Pathao ⇒ Go-jek
    • Deligram ⇒ Bukalapak
    • Redmart ⇒ Chaldal
    • Freshdesk ⇒ Zendesk

    For Start up

    • Smallest Product Marginal Cost
    • Have Clients try your product with zero setup. (Give your product(software) to customer for try to use free first time.)
    • Preset data in your software. ( আপনার Demo Software এ আগে থেকে কিছু Data থাকা প্রয়োজন। যাতে করে Customer Essay তে সেটা Try করে দেখতে পারে। Customer কে যেন নিজে থেকে Entry দিয়ে Setup করতে না হয় সেটা মাথায় রাখতে হবে।)
    • First mover’s Advantage, Follower’s advantage (এইখানে বুঝানো হয়েছে আমরা যখন একটা product তৈরি করার plan করব তখন এই product টা আগে কেউ তৈরি করেছে কিনা সেটা দেখতে হবে। তৈরি করলে তাদের কি কি সমস্যা হয়েছিল তা আমরা জানতে পারব। এতে করে আমাদের আর এই সমস্যাগুলোতে পড়তে হবে না। কারণ আমরা এই সমস্যা আগে থেকেই জেনে গিয়েছি।)

    So, how do we start?

    • Find products/services which are already working.
    • Start with a niche, convince why your solution is better(not necessarily cheaper) (ছোট কিছু দিয়ে শুরু করা উচিত, এবং মানুষকে বুঝানো উচিত আপনারটা কেন ভাল।)
    • Grow the niche.
    • Keep adding value.
    • Listen to Customers.
    • Expand in other regions.

    What not to do!

    • Choosing a product that is inherently complex. e.g Video Streaming
    • Competitors are hostile. (যেই Company গুলোর Syndicate আছে তাদের মত Product নিয়ে First Time Start না করা।)
    • Competitors have an oligopoly(Pepsi, Coke)
    • Marginal profit is very minimal, you have to sell volume.

    Accounting software ⇒ QuickBook, Freshbook

  • Navigating the Requirements and Opportunities in Bangladesh's Thriving Software Industry (Session Topic : Career)(Time: 38 min → 1 hours 17 min)

    • Raisul Kabir(CEO ⇒ Brain Station 23)

      About

      I am the Co-Founder & CEO of Brain Station 23 Ltd. Where carefully handpicked & trained talented developers work on developing web & mobile applications as well as solutions, enterprise application, big data & cloud technologies. Our most clients are small and medium sized located in The Netherlands, Denmark, UK, Canada and US.

    • Kawshar Ahmed(Founder & CEO ⇒ Ollyo)

      About

      Experienced Chief Executive Officer with a demonstrated history of working in the computer software industry. Skilled in PHP, Joomla, WordPress, Web Design, English, and HTML. Strong business development professional graduated from Bangladesh Textile University.

    • Hasnaeen Rizvi Rahman(Founder & CEO ⇒ Astha.IT)

      About

      Hasnaeen Rizvi Rahman founded Astha IT in 2008, when he was in his mid-twenties. Over the decade, it grew up to be an award-winning global service provider, having clients across four continents. A passionate problem solver by heart, Hasnaeen was a multiple-time national champion in chess at the school level. He self-taught computer programming at his ninth grade, and within two years he sold his first commercial software to a buying house. As an outstanding academic, he passed a summa cum laude from North South University with a Bachelor degree in Computer Science.

    • Al Mahmud(Co-founder & CEO ⇒ Bit Byte Technology Ltd.)

      About

      As a Business Development professional i like to offer people with best technology solutions possible to develop their businesses & take their businesses to the next level. As a team leader I follow the ideology of keeping frequent and open communication among the team members and like to be flexible with new ideas which helps to generate the best outcome possible and keeps the positive attitude among the team members. Therefore, to fulfill every day’s corporate challenge I work heart & soul & give directions to the teams to make each day worth remembering which will lead me along with my company to an exciting & accomplishing future.

    • Tareq Bin Ali(CEO ⇒ Notionhive)

      About

      With a background in engineering and a track record as an entrepreneur, he brings a unique combination of technical expertise and out-of-the-box thinking to leadership and problem-solving. Hi engineering background has instilled in me a commitment to precision and attention to detail, while his entrepreneurial experience has taught me to approach challenges with fresh perspectives.

    Note:

    • we need to have passion in my work.
    • we need to have humanity in our life.
    • we need to have teem work attitude in our work
    • we need to have good problem solving skill.
    • we need to best practice and upload to GitHub

    Interview Seasons:

    • Codding test
    • Technical Interview
    • Last test behavioral, Soft-Skill.
  • Araf Bin Tarek(Head of Business Development ⇒ Showwcase) (Session Topic: Personal Branding)(Time: 1 hours 24 min → 1 hours 41 min)

    About

    Hi there! Thanks for dropping by! I'm Araf and currently work in Business Development and Partnerships at Showwcase -a professional network built for developers. I also write business and tech content as a freelance writer, and am a season faculty at Kingston University. I've also been involved in sales & marketing for multiple startups as an advisor, and have a Masters degree in Innovation Management and Entrepreneurship from Kingson University, London.

    araf bin tarekintro.png

    Note:

    The dream for many is to go abroad.

    araf bin tarek slide 3.png

    araf bin tarek slide 4.png

    araf bin tarek slide 5.png

    araf bin tarek slide 6.png

    araf bin tarek slide 7.png

    araf bin tarek slide 8.png

    araf bin tarek slide 9.png

    araf bin tarek slide 10.png

    araf bin tarek slide 11.png

    There are three problem to find job in Others country:

    • lack of confidence.
    • communication.
    • world cultural adoptability .

    We need Personal Development(Process of improving yourself through conscious habits and activities.). Five pillars of Personal Development:

    • Personal Skills(Just because you are not born with it, does mean you cannot master it.)

      নিজের Personal Skill গুলোকে Develop করতে হবে, কারো সাথে কিভাবে পরিচিত হব সেটা শিখতে হবে, কিভাবে কথা বলব, Confidence Level বাড়াতে হবে।

    • Personal Growth(Get out of your comfort zone. Master the art of networking.)

      নিজের পরিচয় দেওয়ার সময় নিজের কাজ গুলোকে, নিজের Passion টাকে তুলে ধরতে হবে। Ex: I am XYZ. I am a Programmer/Web Developer. I was work many IT company. Here I was work many Web Project. There are ….. .

    • Personal Empowerment(Consistency, Discipline and Power of Prioritizing.)

      আমাদের প্রতিদিন অনেক কাজ করতে হয়। অনেক নতুন কাজ আসে। তবে আমাকে দেখতে হবে কোন কাজগুলো সব থেকে Important. যেটা Urgent and Important⇒ Focus on These. যেটা Non Urgent but Important⇒ Decide a time get it done. যেটা Urgent but not Important⇒ Find someone else or push back. যেটা Non Urgent and Non Important⇒ This becomes your “Do Not Do” list.

    • Personal Analysis(Do you self reflect?)

      নিজের সম্পর্কে চিন্তা করতে হবে। নিজেকে নিয়ে সময় দিতে হবে। নিজের ভুলগুলোকে বের করে সমাধান করতে হবে। নিজেকে সবসময় সবার সাথে Update রাখতে হবে। ⇒ আমি যখন একটা Company তে চাকরি করতেছি তখন তারা আমাকে একটা Feedback দিল। আমি যদি এইটা মাথাই না রাখি, পরে দেখা যাবে আমি সেইম ভুল বারবার করতেছি। বিষয়টা মোটেও ভাল নয়। সুতরাং এগুলো মাথায় রাখতে হবে।

    • Personal Objectives(Discipline> motivation.)

      Goal ঠিক করতে হবে, ১ বছর বা ৫ বছর পর নিজেকে কোথায় দেখতে চান। নিজেকে সেই অনুযায়ী প্রস্তুত হতে হবে।

  • Fireside Chat: Build Scalable and Performant Web Applications (Session Topic:- Web Application) (Session Topic : Web Application)(Important Session) (Time: 1 hours 44 min → 2 hours 45 min)

    • Mohammad Nurul Islam Shihan(Sr. Software Engineer ⇒ Azerion)

      About

      An accomplished Software Architect & Leader specializing in Object-Oriented Design and Analysis with extensive experience in the full life cycle of the software design process including requirement analysis, prototyping, proof of concept, design of application, platform and user interface architecture design, implementation, testing and maintenance. Additional expertise includes project management and strong communication skills on both technical and business domains.

    • Md. Mozammel Haque (EVP & Head of Department, Software Research & Engineering, Product & Technology, bKash Ltd.)

      About

      Leading Software Research and Engineering team at bKash - lifting teams, people, products, software solutions, kettlebells. He believed in improving life with quality software solutions.

    • Anam Ahmed (Head of Engineering ⇒ ZELF)

      About

      I am a software engineer turned software architect. I wrote my first line of code 19 years ago and doing it full time for the last 10 years. I write JavaScript full stack and enjoy writing client and server side code equally. I sometimes also enjoy configuring servers. I love to learn new thing and look for opportunities to learn, grow, and help others grow.

    • Rabbil Hasan(Founder & Educator ⇒ Learn with Rabbil Hasan)

      About

      Rabbil Hasan is the leading popular face among Bangladeshi programmer’s community. He is working on web & mobile application development more than 6 years. Research & development, teaching, community leading is the top most noticeable skill inside him.

    • Neyamot Ullah Mohan(Co-founder & CEO ⇒ GotiPath)

      About

      Mohan successfully co-founded few tech companies named GOTIPATH, NUSRATECH, SEARCH ENGLISH, IMDGITAL and OHO. He is a strong business development professional with a demonstrated history of working in the information technology and services industry. Skilled in Leadership, Project Management and Negotiation

    • HM Nayem (Founder & Educator ⇒ Stack Learner)

      About

      HM Nayem is an accomplished full-stack (MERN) web application developer, cloud practitioner, competitive coder, entrepreneur, and educator who constantly looks for new challenges to tackle in the real world. In addition to working with reputable IT firms, Hasan founded Stack Learner, an ed-tech firm that has educated 130,000 people on contemporary technologies. He always gives his best to clients, enhances quality, keeps learning, and shares his expertise with others.

    Note:

    Elastic Search for Indexing

    Shading Token for Separation Database Query.

    💡 Notes: এই সেশনের Note গুলো [a,b,c …] দিয়ে কোনটার পর কোনটা হবে সেটা চিহ্নিত করা আছে।

    Shihan Bai(Head of Engineering):

    1. অনেক ক্ষেত্রে Payment Gateway Crashed করতে পারে Multiple Request একসাথে যাওয়ার জন্য। সে ক্ষেত্রে আমরা Back-end এ কিছু Queue ব্যবহার করতে পারি। প্রেমেন্টত Immediate হওয়ার দরকার নাই। আমরা এখানে যদি Backend এ Message Queue, Job Queue তৈরি করে দিতে পারি। সেক্ষেত্রে Queue থেকে request একটার পর একটা যেতে পারবে। আবার আমার একসাথে ১০০০ Email পাঠাতে হতে পারে, তখন ত একসাথে সবগুলো পাঠানোর দরকার নাই। আমি একটা Queue তে দিয়ে দিলাম Queue তখন একটার পর একটা পাঠাতে থাকল। Order তৈরি করার সময় ও আমারা Queue ব্যবহার করতে পারি। হাই লোড এ একটা Order তৈরি করতে ১ মিনিট ও সময় লাগতে পারে। সেজন্য আমরা এটাকে Offload/Queue(Redis, RabbitMQ)এর মাধ্যমে সমাধান করতে পারি। অর্থাৎ এই কাজগুলো এখন আমাদের করার দরকার নেই, আমরা একটা Queue এর মধ্যে দিয়ে দিব। Queue থেকে এইটা আস্তে আস্তে যেতে থাকবে বা তৈরি হতে থাকুক। কিন্তু আমার কাজটা Properly হোক।[i]
    2. মোট কথা আমরা Application Speed করতে গেলে আমাদেরকে Monitoring Tools Use করে বের করতে হবে Actual Problem টা কোথায় হচ্ছে, কোন জায়গায় আমাদের কাজ করতে হবে। Front-end হোক, Back-end হোক সব জায়গায় আমরা Modern Tools Use করে Code যতটুকু Optimize করা যায় করব। যত জায়গায় দরকার আমরা Caching করব, এইটা যদি Static Resource হয় এক ধরণের Caching করব, এইটা যদি Data হয় এক ধরণের Caching করব, এবং আমাদেরকে অনেক সময় Response Cache করে রাখতে হয় ওইটাও আমরা Cache করব। SEO আনার জন্য আমরা Server Side Rendering করব। পারলে সেটা কে Cache করব, না পারলে করব না। Nginx এর ক্ষেত্রে একটা Popular Strategy আছে এটাকে তারা বলে Micro Caching. এটা শুধু 1 Second এর জন্য একটা Response কে Cache করে। সুতরাং Caching টা খুব Important. [p]
    3. আরেকটা বিষয় দেখা যায় Front-end এ অনেক গুলো API Call করা হয় এই জন্য Application অনেক Slow হয়ে যায়। এইটা আমরা কিভাবে সমাধান করতে পারি? আমরা চাইলে যেই Data টা একটা আরেকটার সাথে Related ওইটাকে একটা API Call এর মধ্যে নিয়ে আসতে পারি। Backend অনেক সময় Unnecessary Information পাঠায় যেটা দরকার নেই ওইটা আমি নিব না। আরেকটা বিষয় Reloading, সবগুলো Data তো আমার একসাথে নামানোর দরকার নাই, আমার Page এর যেই অংশের জন্য দরকার আমি শুধু ওই অংশের জন্য Data নামাব, পরের অংশের জন্য Data লাগলে ওইটার টা পরে নামাব। এই ক্ষেত্রে আমরা GrapQL ব্যবহার করতে পারি Backend এ। Front-end এর সাথে Backend এর API Call কমানোর জন্য যে Strategy টা কাজ করে সেটা হল API Aggregation. [q]
    4. Backend এ কাজ করা অনেক কঠিন। কারণ Backend এ এক জায়গায় কাজ করলে দশ জায়গায় ভাঙ্গে, অনেক Safety Measurement নেওয়া লাগে। এই জন্য আমরা আমাদের Backend এর Code কে Unit Test করতে পারি। [r]
    5. Multiple Instance যখন করলাম, Multiple Database Cluster হল। এখন আমরা যখন Log গুলো দেখার চেস্টা করব এবং Debug করার চেস্টা করব তখন Log গুলোর Coordination খুজে পাব না। আগে একটা State ছিল তখন Debug করতে এত Problem হত না। এখনত Multiple State, এই সমস্যাটা কিভাবে সমাধান করতে পারি? এই ক্ষেত্রে অনেকগুলো VI Tools আছে যা আমরা ব্যবহার করতে পারি। এই Tools গুলো যেই কাজটা করে আসলে, অনেকগুলো Source থেকে Data এনে সেগুলোকে Aggregate করে নানান রকম Query করা যায়। [s]
    6. আমরা যখন Scaling করব তখন দুই ধরণের Scaling Tram আছে। একটা হল Vertical Scalability এবং আরেকটা হল Horizontal Scalability. Vertical Scalability মানে হচ্ছে আমার Server এ Ram কম ছিল CPU কম ছিল, আমি যতটুকু পারলাম বাড়িয়ে দিলাম। আর Horizontal Scalability মানে হচ্ছে আমার Multiple Server থাকবে, প্রতিটা আলাদা আলাদা Instance এ চলবে, একটা Cluster তৈরি করবে এবং এদের মধ্যে যেকোন একটা Request Handle করবে। এইখানে Load-balancing ও লাগবে। [t]

    Mozammel Bai(Head of Operation):

    1. অনেক ক্ষেত্রে দেখা যায় Server Level এ কাজের মধ্যে একটা Instance ও আরেকটা Instance এর মধ্যে Network Problem হয়ে থাকে। তাহলে এক্ষেত্রে আমরা এইটা কিভাবে সমাধান করতে পারি? এই ক্ষেত্রে আমরা আমাদের Application Server গুলোকে Stateless করে ফেলতে পারি. Stateless করে ফেললে যেটা হবে আমরা Multiple Application Server Run করতে পারব। এছাড়া আমাদের Database এ যেহেতু Load বেশি হয় সেক্ষেত্রে আমাদের Database কে কিভাবে Scale করতে পারি এই বিষয়টাও দেখতে হবে। Application Server টাকে যখন আমরা Multiple Server করব তখন আমরা Containerization(Docker)করে ফেলতে পারি।[k]
    2. Stateless Application বলতে বুঝায়, ধরি আমরা একটা Global Variable তৈরি করলাম। তারপর সেই Variable টা Multiple Function এর মাধ্যেমে Reference করলাম। এখন এই Application টা যদি আপনি দুইটা Instance এ চালান, আপনি যখন Variable সেট করবেন, তখন Variable সেট হবে কয়টাতে? অবশ্যই একটাতে হবে। আরেকটা Instance এ কিন্তু Set হবে না। ওইটা থেকে কিন্তু আপনি Variable টা Access করতে পারবেন না। Stateless Application গুলো যেটা করে, এগুলোর ভিতরে কোন State থাকে না, এই Concept টা Front-end এ খুবই Common. HTTP Modules হচ্ছে Stateless। Application Authenticate যখন করব প্রত্যেকবার আমাকে Cookies পাঠাতে হবে। State টাকে Maintain করতে হবে। [L]
    3. Backend কেও যখন আমরা Stateless করে ফেলব তখন Application Layer এ কোন Data থাকবে না। যদি Data লাগে থাহলে অন্য Instance থেকে Data নিতে হবে। এই ক্ষেত্রে আমাদের আলাদা একটা Service ব্যবহার করতে হবে, যেটার মধ্যে শুধু Data ই থাকবে,যেটা দ্রুত Memory থেকে Data Load করতে পারবে। এই রকম একটা Service হচ্ছে Redis. [m]
    4. ধরা যাক, আমি আমার Application Server ৪টা করে দিলাম। আমার Load এখন বেশি। আমি সামনে Load Balancer বসিয়ে দিলাম। Load Balancer কোন সময়, কোন Server কে Request পাঠাবে এইটা তার ব্যাপার। আমি যদি Application Server এর মধ্যে কোন State রাখি, সেটা পরের Request এর জন্য যখন Server এর কাছে যাবে সে তা পাবে না। তখন দেখা যাবে একটা Discrepancy তৈরি হবে। এই Problem কে Solve করার জন্য একটা Shared Data Storage রাখতে হবে। যেখানে আমরা Common data টা রাখব। অথবা Application এর State কে একটা নিদ্দিষ্ট জায়গায় রাখব। [n]
    5. Containerization Application নিয়ে কাজ করতে হলে Kubernetes Best Solution. আবার এটার পাশাপাশি Database Clustering করা প্রয়োজন। যেহেতু Database এ Load বেশি হচ্ছে, আমরা Application Handle করার জন্য যদি Kubernetes Use করি, Monitoring থেকে দেখা যাচ্ছে Database এ Load পড়তেছে থাহলে আমরা Database Slow Query গুলো দেখতে পারি অথবা Database Clustering করতে পারি। [o]

    Anam Bai(Front-end):

    Front-end এ Improvement করা লাগবে কি না কিভাবে বুঝবঃ:

    1. Firstly Frontend Profiling করতে হবে। [a]
    2. Chromes lighthouse Report fixed For Front-end Speed. Google Chrome যা করতে বলছে/Recommendation যা দিছে আগে তা করতে হবে।[b]
    3. Resource Problem. Infrastructure এর কাছ থেকে যদি HTTP2 enable করে দেয় তাহলে ভাল।[c]
    4. Front-end Speed এর জন্য Tree Shaking করা লাগবে। এইখানে আমরা Modern Front-end Tools use করতে হবে। Reactive Framework uses করতে পারি, Modern Build Tools Use করে Proper Bundling Minimizing করতে পারি।যেখানে Automatically Tree Shaking করে দিবে। [h]

    Rabbil Bai(Back-end):

    1. Backend e Sever Response speed করার জন্য Database Indexing করতে হবে। [e]
    2. যদি আমাদের Multiple Server এর মধ্যে কোন একটা Server Disconnect হয়ে যায় তখন কি করব? এইক্ষেত্রে CDN থাকার পাশাপাশি Original Callback থাকা উচিত। At least, Font-end Level এ যেহেতু এত load পড়তেছে, সেহেতু Load-Blanching ব্যবহার করা উচিত। Front-end Load-Balancing means ⇒ আমরা আমাদের Static Resource গুলোকে যদি Cloud এ নিয়ে যাইতে পারি, Cache করতে পারি অথবা Front-end কে একটা Single Page Application হিসেবে CDN এ দিয়ে দিতে পারি। অথবা আমরা আরেটা কাজ করতেপারি। PWA(Progressive Web Application) এ Service Worker ব্যবহার করে আমার Front-end এ যত JavaScript Chunk File আছে, CSS আছে আমরা চাইলে সবগুলো User এর Browser এ Cache করে User কে Offline Capability তৈরি করে দিতে পারি। এইক্ষেত্রে Front-end এর কারণে Server এ প্রেসারই আসবে না। শুধুমাত্র Server এ প্রেসার হবে Request আর Response এ.[j]

    Neyamot Bai(Infrastructure/Cloud):

    1. HTTP2 Enable করার আগে আমাদের দেখতে হবে Server Level এ কোন Monitoring Tools ব্যবহার করছি কিনা। কিসের জন্য Server High হইয়ে যাচ্ছে সেটা দেখতে হবে। এইখানে কোন Memory Leak আছে কিনা, Ram Usage বেড়ে যাচ্ছে কিনা, নাকি Ram পাচ্ছে না বিধায় CPU বেড়ে যাচ্ছে, Reason টা কি সেটা দেখার জন্য আমরা Monitoring Tools(ZABBIX) ব্যবহার করতে পারি। [d]
    2. Backend API speed করার জন্য Caching করাটা জরুরি। আমাদের দেখা যাচ্ছে Single Server এর মধ্যে একসাথে সব কাজ হচ্ছে। সব কিছু আমরা Server থেকেই Load করতেছি। একটা Single Server এর মধ্যে Application, Database, সবকিছু একসাথে রাখতেছি। দেখা যাচ্ছে Database Query ও একসাথে Process হচ্ছে একই Server e এবং Image ও Download হচ্ছে একই Server থেকে। এইখানে আমরা CDN ব্যবহার করতে পারি। আমাদের Image গুলো Cache Server থেকে Load হবে। এইক্ষেত্রে Backend Server থেকে কিছু Load কমে যাবে। কোন Static Content Serve/Delivery করার জন্য Server কে কাজ Delay করতে হবে না। Content গুলো CDNথেকে Serve হবে। Single request আসবে Server এ, সেক্ষেত্রে Server এর Load একটু কমবে। [f]
    3. আরেকটা বিষয় দেখা যায় Image Frequently Change হয়।সেইক্ষেত্রে আমাদের কাজ হচ্ছে Cache Policy Defined করা। দেখা গেছে Image Server থেকে পাঠানো হইছে কিন্তু Cache Path ওইভাবে Mechanism করা হয়নি। সেইক্ষেত্রে Front-end এ দেখা যাবে Image Change হচ্ছে না। এইক্ষেত্রে CDN Use করার পাশাপাশি CDN Cache Policy, Past policy এগুলো Define করতে হবে। [g]
    4. কিছু কিছু Function কে আমরা Server-less করতে পারি। মানে এই Function গুলো একবার Run হবে তারপর Destroy হয়ে যাবে। এই ক্ষেত্রে আমাদের আগে Identify করা উচিত বা Predict করা উচিত কোন Function গুলো একটা Certain Time এর জন্য Run করবে। ওই Function গুলো কে আমরা Server-less করতে পারি। তাইলে আমাদের Cloud Cost কমে আসবে। অন্যথায় আমরা যদি সবগুলোকে Cloud এ নিয়ে যায় তা হলে Cloud Cost বেড়ে যাবে। আমরা জানি এই Function এর উপর প্রেসার পড়বে বা অন্য একটা সময় পড়বে, ওই সময়ের জন্য আমরা এইটাকে Server-less করতে পারি। [w]

Noted By: Shahidul Islam

About

In This Repository, I was get notes all session of defConf 1.0.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published