Running list of more terms/concepts we could document in glossary
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- documentation
Hướng nghiên cứu
Bắt đầu với glossary.md và xem lại danh sách hiện có về các khái niệm C++ và tài nguyên bên ngoài được đề xuất. issue này giống một bản ghi động não mở hơn là một nhiệm vụ tài liệu được xác định rõ; để hoàn thành, cần thu hẹp phạm vi và thống nhất sẽ thêm những thuật ngữ hoặc liên kết nào.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The glossary is developing quickly into a pretty solid resource for the key terms you'll encounter and need to know while learning C++ at Mapbox. Or when starting to teach colleagues about how we write, deploy, and approach C++ at Mapbox.
While the glossary says explicitly that It is not intended to be a complete reference on language or syntax terms, there is much more we can do. This is a ticket to brainstorm additional concepts, terms, and keywords that are potential things to cover in the glossary and related docs.
Most of these terms don't need to be defined in the glossary, rather it would be sufficient to simply list them and links to external resources (particularly style guides we support). The overall goal is 1) note they are important to understand for C++ development a mapbox (by their presence), and 2) provide a great resource to learn more about them. We can add extra definitions where our opinions matter.
(Will be editing this in place as I collect ideas)
Key learning concepts
- the idea of a
mainfunction in an executable - how to pass arguments to a C++ program and parse them - refs #35
- const
const char*vsstd::stringand how they relate- pointers vs references
- dereferencing pointers
- taking the address of a variable
- header guards vs
#pragma once - learning the cpp preprocessor
- what are templates and when to use them
- global variables, why not to use them, when they are appropriate
- when to use
static_cast,reinterpret_cast, andconst_cast. Why to use them rather than c style cases - how enumerations work
enumin C++11. Using casts to change between them and integer types - the max size of numeric types. using
<limits>from the stdlib to know these sizes dynamically - integer overflow. When it is undefined behavior, when it is defined. How to control it/prevent it. How it differs for signed types and unsigned types
- compiler warnings. how to avoid them, fix them, appropriately suppress them. Why, when starting projects, it makes sense to use
-Werrorand very aggressive warnings, even-Weverything - how to use c++ exceptions: why to always make custom exceptions subclass
std::exception. How to catch all types by catchingstd::exception. Why to catch exceptions byconst&. - when to avoid throwing exceptions due to performance concerns (e.g. in tight loops)
- what is garbage collection
- What is reference counting
- Why, when, and how to use
std::unique_ptrvsstd::shared_ptr - zero copy
- Big takeaways of C++11 vs C++14 vs c++17
- move semantics / universal references
- considerations on when to use
std::vectorvsstd::mapvsstd::list - binary size, why it matters, how you can learn about it (https://github.com/google/bloaty)
- What is the
_GLIBCXX_USE_CXX11_ABIflag on linux and why does it matter?
Advanced performance concepts
- Arena allocation vs Memory Pools vs Region-based memory management: https://natsys-lab.blogspot.com/2015/09/fast-memory-pool-allocators-boost-nginx.html
- Alternative allocators: https://howardhinnant.github.io/stack_alloc.html
- Profiling with BCC tools: https://github.com/iovisor/bcc
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 110
- Fork
- 17
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của mapbox/cpp
-
glossary
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
-
Docs on ABIs Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
-
clang-tidy v. -Weffc++ Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
-
docs/learning-resources.md blank Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
agilepathway/label-checker#640 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
BasedHardware/omi#15662 · 1 bình luận ·
-
documentation help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
-
Docs are out of date: README structure tree, "Make It Yours" pointer, CONTRIBUTING test notes Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
amponce/archive-movie-browser#167 ·
-
user-reported
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Kong/developer.konghq.com#7316 ·