关注

SMART原则助力程序人生职业生涯学习与成长

SMART原则助力程序人生职业生涯学习与成长

关键词:SMART原则、职业规划、程序员成长、目标管理、技能提升、学习策略、绩效评估

摘要:本文深入探讨如何将SMART原则应用于程序员的职业生涯规划和学习成长中。我们将从SMART原则的基本概念出发,详细分析其在技术学习、项目管理和职业发展中的具体应用,并提供可操作的实践方法和工具。通过实际案例和代码示例,展示如何制定和执行符合SMART原则的技术学习计划,帮助程序员实现高效、可持续的职业成长。

1. 背景介绍

1.1 目的和范围

本文旨在为程序员和技术从业者提供一个系统性的框架,将SMART目标管理原则应用于技术学习和职业发展。我们将探讨如何制定清晰、可衡量的学习目标,设计有效的执行策略,并建立持续改进的反馈机制。

1.2 预期读者

  • 初级到高级的软件开发人员
  • 技术团队领导和管理者
  • 计算机科学及相关专业的学生
  • 对技术职业发展感兴趣的个人

1.3 文档结构概述

本文将首先介绍SMART原则的基本概念,然后深入探讨其在程序员职业生涯各阶段的应用。我们将提供具体的技术学习案例、代码示例和评估方法,最后讨论相关工具和资源。

1.4 术语表

1.4.1 核心术语定义
  • SMART原则:Specific(具体)、Measurable(可衡量)、Achievable(可实现)、Relevant(相关性)、Time-bound(时限性)的目标设定框架
  • 技术债务:在软件开发过程中,为短期利益而做出的技术妥协所导致的长期维护成本
  • 能力矩阵:评估个人或团队技术能力的结构化框架
1.4.2 相关概念解释
  • 刻意练习:有明确目标、专注投入、及时反馈的针对性训练方法
  • T型技能:在某一领域有深入专长(竖线),同时具备广泛知识面(横线)的能力结构
  • 职业路线图:描述职业发展路径和关键里程碑的规划工具
1.4.3 缩略词列表
  • OKR: Objectives and Key Results (目标与关键成果法)
  • KPI: Key Performance Indicator (关键绩效指标)
  • IDE: Integrated Development Environment (集成开发环境)
  • CI/CD: Continuous Integration/Continuous Deployment (持续集成/持续部署)

2. 核心概念与联系

SMART原则与程序员职业发展的关系可以通过以下架构图表示:

程序员职业发展
学习规划
项目管理
职业晋升
SMART学习目标
SMART项目里程碑
SMART职业目标
具体技术领域
可衡量的进步
可实现的时间表
明确的需求
可测试的交付物
相关行业趋势
时限性成长计划

SMART原则在技术领域的应用特点:

  1. Specific(具体性):在技术学习中,这意味着要明确具体的技术栈、框架或概念,而不是模糊的"学习编程"。

  2. Measurable(可衡量):通过代码提交量、测试覆盖率、性能指标等量化方式评估进步。

  3. Achievable(可实现):考虑当前技能水平、可用时间和资源,设定切实可行的目标。

  4. Relevant(相关性):选择与职业发展方向和市场趋势一致的技术进行学习。

  5. Time-bound(时限性):为技术学习设定明确的时间框架,避免无限期的"学习"。

3. 核心算法原理 & 具体操作步骤

我们可以将SMART目标制定过程算法化,以下是一个Python实现示例:

class SMARTGoal:
    def __init__(self):
        self.specific = ""
        self.measurable = []
        self.achievable = True
        self.relevant = ""
        self.time_bound = ""
    
    def set_specific(self, description):
        """设置具体目标描述"""
        if len(description.split()) >= 5:  # 确保描述足够具体
            self.specific = description
            return True
        return False
    
    def add_metric(self, metric_name, target_value):
        """添加可衡量的指标"""
        self.measurable.append((metric_name, target_value))
    
    def check_achievable(self, current_skill, time_hours, difficulty):
        """评估目标是否可实现"""
        # 简单的可实现性评估算法
        skill_gap = difficulty - current_skill
        required_effort = skill_gap * 10  # 假设每点技能差距需要10小时
        
        if time_hours >= required_effort * 0.8:  # 保留20%缓冲
            self.achievable = True
            return True
        self.achievable = False
        return False
    
    def set_relevant(self, career_path, market_trend):
        """设置目标相关性"""
        relevance_score = 0
        keywords = ["cloud", "AI", "blockchain", "devops"]  # 当前热门技术关键词
        
        for keyword in keywords:
            if keyword in career_path.lower() or keyword in market_trend.lower():
                relevance_score += 1
        
        if relevance_score >= 2:  # 至少匹配2个热门关键词
            self.relevant = f"Aligns with {career_path} and {market_trend}"
            return True
        return False
    
    def set_time_bound(self, start_date, end_date):
        """设置时间限制"""
        from datetime import datetime
        start = datetime.strptime(start_date, "%Y-%m-%d")
        end = datetime.strptime(end_date, "%Y-%m-%d")
        
        if (end - start).days > 0:
            self.time_bound = f"{start_date} to {end_date}"
            return True
        return False
    
    def validate(self):
        """验证目标是否符合SMART原则"""
        return all([
            self.specific,
            self.measurable,
            self.achievable,
            self.relevant,
            self.time_bound
        ])

# 使用示例
goal = SMARTGoal()
goal.set_specific("Learn React framework to build interactive web applications")
goal.add_metric("Projects completed", 3)
goal.add_metric("Test coverage", 80)
goal.check_achievable(current_skill=5, time_hours=100, difficulty=7)
goal.set_relevant("Frontend developer", "React is in high demand in 2023")
goal.set_time_bound("2023-06-01", "2023-08-31")

if goal.validate():
    print("Valid SMART goal created!")
    print(f"Specific: {goal.specific}")
    print(f"Measurable: {goal.measurable}")
    print(f"Achievable: {goal.achievable}")
    print(f"Relevant: {goal.relevant}")
    print(f"Time-bound: {goal.time_bound}")
else:
    print("Goal does not meet SMART criteria")

这个实现展示了如何将SMART原则转化为可执行的代码逻辑,帮助程序员系统化地制定学习目标。

4. 数学模型和公式 & 详细讲解 & 举例说明

4.1 学习效率模型

我们可以用以下数学模型评估学习效率:

Learning Efficiency = ∑ i = 1 n ( w i ⋅ s i ) ∑ j = 1 m t j \text{Learning Efficiency} = \frac{\sum_{i=1}^{n} (w_i \cdot s_i)}{\sum_{j=1}^{m} t_j} Learning Efficiency=j=1mtji=1n(wisi)

其中:

  • w i w_i wi = 第i项技能的权重(根据市场需求和个人职业规划)
  • s i s_i si = 第i项技能的掌握程度(0-100%)
  • t j t_j tj = 第j个时间单位(小时)的学习投入

举例说明
假设一个程序员有以下学习目标:

  • React (权重0.4,当前掌握30%,目标70%)
  • Node.js (权重0.3,当前掌握50%,目标80%)
  • Docker (权重0.3,当前掌握10%,目标60%)

计划投入100小时学习时间,那么:

初始效率 = 0.4 × 30 + 0.3 × 50 + 0.3 × 10 0 = 未定义 \text{初始效率} = \frac{0.4 \times 30 + 0.3 \times 50 + 0.3 \times 10}{0} = \text{未定义} 初始效率=00.4×30+0.3×50+0.3×10=未定义

经过100小时后,假设达到:

  • React: 65%
  • Node.js: 75%
  • Docker: 55%

最终效率 = 0.4 × 65 + 0.3 × 75 + 0.3 × 55 100 = 26 + 22.5 + 16.5 100 = 0.65 \text{最终效率} = \frac{0.4 \times 65 + 0.3 \times 75 + 0.3 \times 55}{100} = \frac{26 + 22.5 + 16.5}{100} = 0.65 最终效率=1000.4×65+0.3×75+0.3×55=10026+22.5+16.5=0.65

4.2 目标进度跟踪公式

使用燃尽图(Burndown Chart)模型跟踪学习进度:

Remaining Work = Total Work − ∑ d = 1 n Work Completed d \text{Remaining Work} = \text{Total Work} - \sum_{d=1}^{n} \text{Work Completed}_d Remaining Work=Total Workd=1nWork Completedd

其中:

  • Total Work = 预估总学习量(可以按知识点或小时计算)
  • Work Completed_d = 第d天完成的学习量

Python实现示例

import matplotlib.pyplot as plt
import numpy as np

# 模拟数据
days = np.arange(1, 31)
total_work = 100  # 总学习任务(小时)
ideal_progress = np.linspace(total_work, 0, 30)
actual_progress = total_work - np.cumsum(np.random.randint(2, 5, 30))

plt.figure(figsize=(10, 5))
plt.plot(days, ideal_progress, '--', label='Ideal Progress')
plt.plot(days, actual_progress, '-o', label='Actual Progress')
plt.fill_between(days, actual_progress, ideal_progress, 
                 where=(actual_progress > ideal_progress), 
                 color='red', alpha=0.3, label='Behind Schedule')
plt.fill_between(days, actual_progress, ideal_progress,
                 where=(actual_progress <= ideal_progress),
                 color='green', alpha=0.3, label='Ahead of Schedule')
plt.title('Learning Progress Burndown Chart')
plt.xlabel('Days')
plt.ylabel('Remaining Work (hours)')
plt.legend()
plt.grid(True)
plt.show()

这个模型帮助程序员可视化学习进度,及时调整学习策略。

5. 项目实战:代码实际案例和详细解释说明

5.1 开发环境搭建

技术栈选择

  • Python 3.8+ (用于数据分析和个人效率工具开发)
  • Jupyter Notebook (交互式学习和实验)
  • Git (版本控制和进度跟踪)
  • VS Code (主开发环境)

环境配置步骤

  1. 安装Miniconda管理Python环境
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
  1. 创建专用环境
conda create -n smart_learning python=3.8
conda activate smart_learning
  1. 安装必要库
pip install jupyter pandas matplotlib seaborn scikit-learn

5.2 源代码详细实现和代码解读

个人学习跟踪系统实现

import json
from datetime import datetime, timedelta
from typing import Dict, List, Tuple

class LearningTracker:
    def __init__(self):
        self.skills: Dict[str, Dict] = {}  # 技能数据库
        self.learning_plans: Dict[str, Dict] = {}  # 学习计划
        self.progress_data: List[Dict] = []  # 进度跟踪
    
    def add_skill(self, name: str, category: str, current_level: float, target_level: float):
        """添加需要学习的技能"""
        self.skills[name] = {
            'category': category,
            'current': current_level,
            'target': target_level,
            'resources': [],
            'last_updated': datetime.now().isoformat()
        }
    
    def create_learning_plan(self, plan_name: str, skills: List[str], 
                           start_date: str, end_date: str):
        """创建学习计划"""
        start = datetime.fromisoformat(start_date)
        end = datetime.fromisoformat(end_date)
        duration = (end - start).days
        
        plan = {
            'skills': skills,
            'start': start_date,
            'end': end_date,
            'duration_days': duration,
            'daily_commitment': {},
            'completed': False
        }
        
        # 为每个技能分配学习时间(按技能重要性和差距比例)
        total_gap = sum(self.skills[skill]['target'] - self.skills[skill]['current'] 
                       for skill in skills)
        
        for skill in skills:
            skill_gap = self.skills[skill]['target'] - self.skills[skill]['current']
            percentage = skill_gap / total_gap
            plan['daily_commitment'][skill] = round((percentage * duration) / 7, 2)  # 每周小时数
        
        self.learning_plans[plan_name] = plan
        return plan
    
    def record_progress(self, plan_name: str, date: str, 
                       skill: str, hours: float, progress: float):
        """记录学习进度"""
        entry = {
            'plan': plan_name,
            'date': date,
            'skill': skill,
            'hours': hours,
            'progress': progress,
            'timestamp': datetime.now().isoformat()
        }
        self.progress_data.append(entry)
        
        # 更新技能当前水平
        if skill in self.skills:
            self.skills[skill]['current'] = min(
                self.skills[skill]['target'],
                self.skills[skill]['current'] + progress
            )
            self.skills[skill]['last_updated'] = datetime.now().isoformat()
    
    def analyze_progress(self, plan_name: str):
        """分析学习进度"""
        plan_data = [entry for entry in self.progress_data if entry['plan'] == plan_name]
        
        if not plan_data:
            return {"status": "No progress data available"}
        
        total_hours = sum(entry['hours'] for entry in plan_data)
        total_progress = sum(entry['progress'] for entry in plan_data)
        
        plan = self.learning_plans[plan_name]
        expected_days = (datetime.now() - datetime.fromisoformat(plan['start'])).days
        total_expected_hours = expected_days * sum(plan['daily_commitment'].values()) / 7
        
        efficiency = total_progress / total_hours if total_hours > 0 else 0
        adherence = total_hours / total_expected_hours if total_expected_hours > 0 else 0
        
        return {
            'plan': plan_name,
            'total_hours': total_hours,
            'total_progress': total_progress,
            'efficiency': round(efficiency, 2),
            'adherence': round(adherence, 2),
            'expected_hours': round(total_expected_hours, 2),
            'completion_percentage': self._calculate_completion(plan_name)
        }
    
    def _calculate_completion(self, plan_name: str):
        """计算计划完成百分比"""
        plan = self.learning_plans[plan_name]
        total_skills = len(plan['skills'])
        completed_skills = 0
        
        for skill in plan['skills']:
            if self.skills[skill]['current'] >= self.skills[skill]['target'] * 0.9:  # 达到90%视为完成
                completed_skills += 1
        
        return round(completed_skills / total_skills * 100, 2)
    
    def visualize_progress(self, plan_name: str):
        """可视化学习进度"""
        import matplotlib.pyplot as plt
        import pandas as pd
        
        plan_data = [entry for entry in self.progress_data if entry['plan'] == plan_name]
        if not plan_data:
            print("No data to visualize")
            return
        
        df = pd.DataFrame(plan_data)
        df['date'] = pd.to_datetime(df['date'])
        df = df.sort_values('date')
        
        # 累计进度计算
        df['cumulative_hours'] = df.groupby('skill')['hours'].cumsum()
        df['cumulative_progress'] = df.groupby('skill')['progress'].cumsum()
        
        plt.figure(figsize=(12, 6))
        
        # 绘制每个技能的进度
        for skill in df['skill'].unique():
            skill_df = df[df['skill'] == skill]
            plt.plot(skill_df['date'], skill_df['cumulative_progress'], 
                    '-o', label=skill)
        
        plt.title(f'Learning Progress for Plan: {plan_name}')
        plt.xlabel('Date')
        plt.ylabel('Cumulative Progress')
        plt.legend()
        plt.grid(True)
        plt.xticks(rotation=45)
        plt.tight_layout()
        plt.show()
        
        return df

# 使用示例
tracker = LearningTracker()

# 添加需要学习的技能
tracker.add_skill('Python', 'Programming', 70, 90)
tracker.add_skill('Docker', 'DevOps', 30, 80)
tracker.add_skill('React', 'Frontend', 20, 70)

# 创建学习计划
plan = tracker.create_learning_plan(
    plan_name='Q3 Learning Plan',
    skills=['Python', 'Docker', 'React'],
    start_date='2023-07-01',
    end_date='2023-09-30'
)

# 模拟记录学习进度
import random
from datetime import datetime, timedelta

start_date = datetime(2023, 7, 1)
for i in range(90):  # 模拟90天的学习记录
    date = start_date + timedelta(days=i)
    if random.random() > 0.3:  # 70%的概率有学习记录
        skill = random.choice(['Python', 'Docker', 'React'])
        hours = random.uniform(0.5, 3.0)
        progress = random.uniform(0.1, 0.5) * hours
        
        tracker.record_progress(
            plan_name='Q3 Learning Plan',
            date=date.isoformat(),
            skill=skill,
            hours=hours,
            progress=progress
        )

# 分析进度
analysis = tracker.analyze_progress('Q3 Learning Plan')
print("Progress Analysis:")
for k, v in analysis.items():
    print(f"{k}: {v}")

# 可视化进度
df = tracker.visualize_progress('Q3 Learning Plan')

5.3 代码解读与分析

这个学习跟踪系统实现了以下关键功能:

  1. 技能管理add_skill方法允许用户定义需要提升的技能,包括当前水平和目标水平。

  2. 学习计划创建create_learning_plan方法基于SMART原则创建学习计划:

    • Specific:明确指定要学习的技能
    • Measurable:量化当前水平和目标水平
    • Achievable:根据技能差距和时间分配合理的学习量
    • Relevant:技能与个人发展相关
    • Time-bound:明确的开始和结束日期
  3. 进度跟踪record_progress方法记录每日学习情况,包括学习时间和取得的进步。

  4. 分析功能analyze_progress计算学习效率和计划遵守情况,提供量化反馈。

  5. 可视化visualize_progress生成学习进度图表,直观展示各技能的学习轨迹。

关键算法分析

  1. 学习时间分配算法
skill_gap = self.skills[skill]['target'] - self.skills[skill]['current']
percentage = skill_gap / total_gap
plan['daily_commitment'][skill] = round((percentage * duration) / 7, 2)

这个算法根据每个技能的目标差距占总差距的比例,按比例分配学习时间,确保重点技能获得更多关注。

  1. 进度评估算法
efficiency = total_progress / total_hours if total_hours > 0 else 0
adherence = total_hours / total_expected_hours if total_expected_hours > 0 else 0

这两个指标分别衡量学习效率(单位时间内的进步)和计划遵守度(实际学习时间与计划时间的比例)。

6. 实际应用场景

6.1 技术栈转型规划

场景:Java后端开发人员想转向全栈开发

SMART目标制定

  1. Specific:掌握React前端开发和Node.js后端开发
  2. Measurable
    • 完成3个全栈项目
    • 通过2个相关认证考试
    • GitHub上有100次相关代码提交
  3. Achievable
    • 每天2小时学习时间
    • 现有Java经验可帮助理解编程概念
  4. Relevant
    • 符合公司向微服务架构转型的需求
    • 市场对全栈开发人员需求旺盛
  5. Time-bound:6个月完成转型

6.2 开源项目贡献计划

场景:中级程序员想通过参与开源提升技术影响力

SMART实施步骤

  1. 选择项目

    • 使用GitHub高级搜索,按语言(如Python)、活跃度(近期提交)、问题标签(如"good first issue")筛选
    # 伪代码:GitHub项目筛选条件
    filters = {
        'language': 'Python',
        'stars': '>1000',
        'pushed': '>2023-01-01',
        'label': 'good first issue'
    }
    
  2. 制定贡献计划

    • 第一个月:阅读文档,修复1-2个简单bug
    • 第二个月:提交小型功能改进
    • 第三个月:负责一个中等规模的功能模块
  3. 进度指标

    • 每周代码提交量
    • Pull Request接受率
    • 社区反馈质量

6.3 技术面试准备

场景:准备顶级科技公司技术面试

SMART规划表

维度内容
Specific重点突破算法、系统设计和行为问题三个面试环节
Measurable- LeetCode完成300题(200中等,100困难)
- 设计10个系统架构案例
Achievable利用晚上和周末时间,3个月准备周期
Relevant针对目标公司(如FAANG)的面试风格和重点
Time-bound分阶段计划:
- 第1个月:数据结构和算法
- 第2个月:系统设计
- 第3个月:模拟面试

7. 工具和资源推荐

7.1 学习资源推荐

7.1.1 书籍推荐
  • 《软技能:代码之外的生存指南》- 程序员职业发展全景指南
  • 《刻意练习:如何从新手到大师》- 科学提升技能的方法论
  • 《程序员修炼之道》- 专业技术实践的智慧结晶
7.1.2 在线课程
  • Coursera: “Learning How to Learn” (学习科学基础)
  • edX: “CS50’s Introduction to Computer Science” (计算机科学基础)
  • Udacity: “Data Structures and Algorithms Nanodegree” (算法专项)
7.1.3 技术博客和网站
  • dev.to - 开发者社区,分享学习和职业经验
  • freeCodeCamp - 免费编程学习资源
  • Martin Fowler的博客 - 软件架构权威观点

7.2 开发工具框架推荐

7.2.1 IDE和编辑器
  • VS Code + GitHub Copilot (智能编程辅助)
  • IntelliJ IDEA (Java/Kotlin开发)
  • PyCharm (Python开发)
7.2.2 调试和性能分析工具
  • Chrome DevTools (前端调试)
  • Jupyter Notebook (交互式数据分析)
  • VisualVM (Java性能分析)
7.2.3 相关框架和库
  • 学习跟踪:Obsidian + Dataview插件(知识管理)
  • 进度可视化:Grafana(监控仪表板)
  • 自动化:Python + Automate the Boring Stuff(效率工具开发)

7.3 相关论文著作推荐

7.3.1 经典论文
  • “The SMART Way to Define Management Objectives” (SMART原则原始论文)
  • “No Silver Bullet” (Fred Brooks, 软件工程本质性讨论)
7.3.2 最新研究成果
  • “The Developer’s Journey” (2022, ACM) - 程序员成长路径研究
  • “Measuring Learning Outcomes in Programming Education” (2023, IEEE) - 学习效果评估
7.3.3 应用案例分析
  • “How Google Measures Learning Progress” - 企业级学习评估体系
  • “GitHub’s Engineering Career Framework” - 技术职级发展参考

8. 总结:未来发展趋势与挑战

8.1 技术趋势对程序员学习的影响

  1. AI辅助编程的崛起:GitHub Copilot等工具改变了学习方式,需要培养与AI协作的新技能
  2. 云原生技术普及:容器化、微服务架构成为必备技能
  3. 跨平台开发需求:掌握React Native、Flutter等跨平台框架增加就业竞争力

8.2 持续学习的挑战与对策

  1. 技术过速迭代

    • 对策:建立T型知识结构,核心技能深耕+周边技术广泛了解
    • 使用技术雷达(如ThoughtWorks Tech Radar)跟踪重要技术趋势
  2. 学习时间不足

    • 对策:时间盒(Time Boxing)技术,将学习任务划分为固定时间块
    # 伪代码:时间盒调度算法
    def schedule_learning_blocks(available_hours, priorities):
        blocks = []
        remaining_hours = available_hours
        
        for skill, hours in sorted(priorities.items(), key=lambda x: -x[1]):
            allocated = min(hours, remaining_hours)
            if allocated > 0:
                blocks.append((skill, allocated))
                remaining_hours -= allocated
        
        return blocks
    
  3. 学习动力维持

    • 对策:游戏化(Gamification)学习过程,设置里程碑和奖励
    • 加入学习社区,获得同伴支持和 accountability

8.3 未来职业发展建议

  1. 专业化与全栈化的平衡:选择1-2个领域深入,同时保持技术广度
  2. 构建个人技术品牌:通过开源贡献、技术博客、演讲提升影响力
  3. 发展元学习能力:掌握如何快速学习新技能的能力比任何具体技术都重要

9. 附录:常见问题与解答

Q1:如何应对学习计划中频繁出现的技术变更?
A1:采用分层学习策略:

  1. 花70%时间学习持久性知识(算法、设计模式、系统原理)
  2. 20%时间学习中期稳定的框架和工具
  3. 10%时间了解新兴技术趋势

Q2:当多个学习目标冲突时如何优先排序?
A2:使用加权评分模型:

def prioritize_goals(goals):
    # 考虑因素:职业相关性、市场需求、个人兴趣、学习成本
    scores = []
    for goal in goals:
        score = (goal['career_relevance'] * 0.4 +
                goal['market_demand'] * 0.3 +
                goal['personal_interest'] * 0.2 -
                goal['learning_cost'] * 0.1)
        scores.append((goal['name'], score))
    
    return sorted(scores, key=lambda x: -x[1])

Q3:如何衡量非技术技能(如沟通、领导力)的提升?
A3:创建行为指标:

  • 技术分享次数
  • 跨团队协作项目参与度
  • mentee成长速度
  • 冲突解决效率

10. 扩展阅读 & 参考资料

  1. GitHub’s Engineering Career Framework - 技术职级发展参考
  2. Google’s Engineering Competency Matrix - 工程师能力评估工具
  3. The Developer’s Learning Toolkit - Google开发者学习资源
  4. Stack Overflow Developer Survey 2023 - 行业趋势数据
  5. ACM Learning Pathways - 计算机科学学习路径

通过系统应用SMART原则,程序员可以构建可持续、高效的学习和职业发展体系,在快速变化的技术行业中保持竞争力。关键在于将抽象的目标转化为可执行、可衡量的具体行动,并建立持续的反馈和改进机制。

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/universsky2015/article/details/147546020

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--