我的创作纪念日

引言:

在技术的海洋里遨游,每一个里程碑都值得铭记。今天,我站在一个新的起点上,庆祝自己作为优快云博主创作者的又一个重要时刻。回望过去,每一篇文章都承载着我对技术的热爱与追求;展望未来,我将继续在这条充满挑战与机遇的路上前行,与广大技术爱好者一同成长。

从初次接触编程到成为一名热衷于分享的博主,这段旅程既充满了艰辛也充满了喜悦。每一次敲击键盘,都是对未知世界的探索;每一篇文章的发布,都是与读者心灵的碰撞。优快云不仅是一个记录我技术成长的地方,更是一个见证无数开发者梦想启航的港湾。

在此特别的日子里,我想与大家分享我的创作心得,以及在技术探索之路上所收获的点点滴滴。无论是面对技术难题时的困惑与解决,还是在自我提升中的感悟与收获,我都希望通过我的文字,能够为后来者照亮前路,同时也为自己留下一份珍贵的记忆。

让我们一起回顾过往,珍惜现在,并共同期待更加辉煌灿烂的明天。

1. 机缘

1.1 分享实战经验:

  • 在实际项目开发过程中,经常会遇到各种技术难题。通过记录和分享这些解决过程,可以帮助其他开发者避免相同的错误,提高工作效率。例如,在使用 Vue.js 开发大型应用时,可能会遇到性能优化、状态管理等问题,分享这些问题的解决方案可以惠及更多人。

1.2 自我提升:

  • 写作是一个很好的自我学习和总结的过程。通过撰写技术文章,可以迫使自己深入理解某个技术细节,从而达到更好的掌握。例如,在研究某个复杂的前端框架时,通过详细记录其内部机制,可以加深自己的理解。

1.3 建立个人品牌:

  • 技术博客是展示个人技能和专业知识的有效途径。通过持续输出高质量的技术内容,可以逐渐建立起个人品牌,提高在行业内的知名度。这对于职业发展和个人影响力都有很大的帮助。

1.4 促进技术交流:

  • 技术博客是一个开放的平台,可以吸引来自世界各地的开发者进行交流。通过文章评论、社交媒体等方式,可以与同行进行互动,共同探讨技术问题,形成良好的技术社区氛围。

1.5 帮助初学者:

  • 对于很多初学者来说,技术博客是一个重要的学习资源。通过撰写入门级的文章,可以帮助初学者更快地掌握基础知识,降低学习曲线。例如,编写一篇关于 Vue.js 基础用法的文章,可以帮助新手快速上手。

1.6 记录成长历程:

  • 技术博客不仅是对外分享的平台,也是个人成长的记录。通过记录自己的学习过程和项目经历,可以清晰地看到自己的进步和发展轨迹,对未来的职业规划也有很大帮助。

1.7 获得成就感:

  • 当看到自己的文章被广泛传播,收到读者的正面反馈时,会感到非常满足和自豪。这种成就感是推动持续创作的重要动力之一。

2. 收获

撰写技术博客不仅可以帮助他人,还能给自己带来多方面的收获。

2.1 技术深度理解:

  • 深入研究:撰写技术博客需要对某个主题进行深入研究,这有助于全面理解和掌握相关技术细节。
  • 查缺补漏:在准备文章的过程中,会发现自己的知识盲点,从而进行补充学习,弥补不足。

2.2 提升写作能力:

  • 逻辑思维:撰写技术文章需要清晰的逻辑思维,能够将复杂的概念分解成易于理解的部分。
  • 表达能力:通过不断练习,可以提高文字表达能力和沟通技巧,使文章更加流畅、准确。

2.3 扩大影响力:

  • 个人品牌:长期坚持撰写高质量的技术博客,可以逐步建立起个人品牌,提高在行业内的知名度。
  • 粉丝关注:随着文章质量的提升,会吸引越来越多的粉丝关注,形成稳定的读者群体。

2.4 获得正向反馈:

  • 点赞与评论:读者的点赞、评论和转发是对作者最大的鼓励,这些正向反馈可以增强写作的动力。
  • 技术交流:通过文章评论区与其他开发者交流,可以获得宝贵的建议和反馈,进一步完善自己的技术理解。

2.5 拓宽人脉圈:

  • 结识同行:撰写技术博客可以结识许多志同道合的技术同行,形成良好的社交网络。
  • 合作机会:通过技术博客,可能会获得更多的合作机会,如项目合作、技术讲座等。

2.6 自我成长:

  • 记录成长历程:通过撰写技术博客,可以记录自己的学习和成长过程,回顾过去,展望未来。
  • 反思与总结:每次撰写文章后,都会进行反思和总结,不断提高自己的技术水平和写作能力。

2.7 职业发展:

  • 简历加分项:拥有丰富的技术博客内容可以作为简历上的亮点,展示自己的专业能力和实践经验。
  • 面试优势:在面试时,可以引用自己的博客内容,展示自己的技术深度和广度,提高竞争力。

2.8 社区贡献:

  • 帮助他人:通过分享自己的经验和知识,可以帮助其他开发者解决问题,提高整个技术社区的整体水平。
  • 回馈社会:撰写技术博客也是一种回馈社会的方式,让更多人受益于技术知识。

2.9 提升解决问题的能力:

  • 实践检验:在撰写技术博客的过程中,会遇到各种实际问题,通过解决问题,可以提升自己的综合能力。
  • 案例积累:通过记录和分析实际案例,可以积累丰富的经验,提升解决复杂问题的能力。

3. 日常

  • 创作已经是我生活的一部分了:写作已经成为我日常生活不可或缺的一部分。它不仅是一种表达方式,更是自我反思和成长的过程。
  • 有限的精力下,如何平衡创作和工作学习:我会利用碎片时间来进行思考和构思,比如上下班途中、午休时间等。同时,合理安排每周固定的时间段专注于写作,确保既能完成日常工作,也能保证内容的质量。

4. 成就

class MyPromise {
  constructor(exector) {
    // 初始化状态及初始值
    this.initValue();
    // 初始化的时候改变 this 指向,将 this 指向实例对象
    this.initBind();
    // 执行器,当 new MyPromise()时,这个callback要接受 resolve 和 reject 函数
    try {
      // 正常执行的话,执行 exector
      exector(this.resolve, this.reject);
    } catch (error) {
      // 捕获到异常,则执行一次 reject
      this.reject(error);
    }
  }
  initValue() {
    this.PromiseState = "pending"; // Promise 状态
    this.PromiseResult = null; // Promise 返回值
    this.onFulfilledCallbacks = []; // 保存成功的回调
    this.onRejectedCallbacks = []; // 保存失败的回调
  }
  initBind() {
    this.resolve = this.resolve.bind(this);
    this.reject = this.reject.bind(this);
  }
  resolve(value) {
    // 只要状态已经改变,就不允许继续修改状态
    if (this.PromiseState !== "pending") {
      return;
    }
    // 此时状态改为 fulfilled
    this.PromiseState = "fulfilled";
    // 将传递进来的参数赋值
    this.PromiseResult = value;
    // 执行成功的回调
    while (this.onFulfilledCallbacks.length) {
      // 每次从队列中取出一个来执行
      this.onFulfilledCallbacks.shift()(this.PromiseResult);
    }
  }
  reject(reason) {
    // 只要状态已经改变,就不允许继续修改状态
    if (this.PromiseState !== "pending") {
      return;
    }
    // 此时状态改为 rejected
    this.PromiseState = "rejected";
    // 将传递进来的错误抛出
    this.PromiseResult = reason;
    // 执行成功的回调
    while (this.onRejectedCallbacks.length) {
      // 每次从队列中取出一个来执行
      this.onRejectedCallbacks.shift()(this.PromiseResult);
    }
  }
  then(onFulfilled, onRejected) {
    // then 函数接收两个callback,一个是成功回调,一个是失败回调
    // 参数兜底处理,确保返回的都是回调函数
    onFulfilled =
      typeof onFulfilled === "function" ? onFulfilled : (value) => value;
    onRejected =
      typeof onRejected === "function"
        ? onRejected
        : (reason) => {
            throw reason;
          };
    var promiseThen = new MyPromise((resolve, reject) => {
      const handlePromise = (fn) => {
        setTimeout(() => {
          try {
            let f = fn(this.PromiseResult);
            if (f === promiseThen) {
              // 不能返回自身
              throw new Error("不能返回自身。。。");
            }
            if (f instanceof MyPromise) {
              // 如果是 Promise 则执行对应的回调
              f.then(resolve, reject);
            } else {
              // 如果不是 Promise 则直接成功
              resolve(f);
            }
          } catch (error) {
            // 处理报错, 预防一些边界情况
            reject(error);
            throw new Error(error);
          }
        });
      };
      // 如果成功,则执行成功回调
      // 如果失败,则执行失败回调
      if (this.PromiseState === "fulfilled") {
        // onFulfilled(this.PromiseResult);
        handlePromise(onFulfilled);
      } else if (this.PromiseState === "rejected") {
        // onRejected(this.PromiseResult);
        handlePromise(onRejected);
      } else if (this.PromiseState === "pending") {
        // 将成功回调放入队列
        this.onFulfilledCallbacks.push(handlePromise.bind(this, onFulfilled));
        // 将失败回调放入队列
        this.onRejectedCallbacks.push(handlePromise.bind(this, onRejected));
      }
    });

    // 返回包装的 Promise
    return promiseThen;
  }
  static all(promises) {
    const result = [];
    let count = 0;
    return new MyPromise((resolve, reject) => {
      const addData = (index, value) => {
        result[index] = value;
        count++;
        if (count === promises.length) resolve(result);
      };
      promises.forEach((promise, index) => {
        if (promise instanceof MyPromise) {
          promise.then(
            (res) => {
              addData(index, res);
            },
            (err) => reject(err)
          );
        } else {
          addData(index, promise);
        }
      });
    });
  }

  static race(promises) {
    return new MyPromise((resolve, reject) => {
      promises.forEach((promise, index) => {
        if (promise instanceof MyPromise) {
          promise.then(
            (res) => resolve(res),
            (err) => reject(err)
          );
        } else {
          resolve(promise);
        }
      });
    });
  }

  static allSettled(promises) {
    return new MyPromise((resolve, reject) => {
      let result = [];
      let count = 0;
      let addData = (status, value, index) => {
        result[index] = {
          status,
          value,
        };
        count++;
        if (count === promises.length) {
          resolve(result);
        }
      };
      promises.forEach((promise, index) => {
        if (promise instanceof MyPromise) {
          promise.then(
            (res) => addData("fulfilled", res, index),
            (err) => addData("rejected", err, index)
          );
        } else {
          addData("fulfilled", promise, index);
        }
      });
    });
  }

  static any(promises) {
    return new MyPromise((resolve, reject) => {
      let count = 0;
      promises.forEach((promise, index) => {
        if (promise instanceof MyPromise) {
          promise.then(
            (res) => resolve(res),
            (err) => {
              count++;
              if (count === promises.length) {
                reject("都执行失败了~");
              }
            }
          );
        }
      });
    });
  }
}

这段代码实现了一个基本的 MyPromise 类,包括构造函数、状态管理、回调队列、then 方法以及几个静态方法。通过这种方式,可以实现类似原生 Promise 的功能,并且具备一定的健壮性和扩展性。

5. 憧憬

5.1 技术成长

  • 持续学习:随着技术的快速发展,不断学习新技术、新工具和新方法,保持自己的竞争力。
  • 专业领域深耕:在开发领域深耕细作,成为该领域的专家,提升自己的专业影响力。

5.2 职业发展

  • 晋升机会:通过不断努力和积累,获得更多的晋升机会,实现职业上的突破。
  • 创业梦想:有机会实现自己的创业梦想,创立一家有影响力的公司或项目。

5.3 生活质量

  • 工作与生活平衡:找到合适的工作与生活的平衡点,享受高质量的生活。
  • 健康与幸福:保持身心健康,享受家庭和朋友带来的快乐。

5.4 人际关系

  • 拓展人脉:通过技术博客、社交媒体等渠道结识更多志同道合的朋友,形成良好的社交网络。
  • 合作机会:与更多的同行合作,共同完成有意义的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑九_六千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值