程序媛比码大赛,不秀美颜照,秀代码图

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 制品仓库,基础版人数 不受限
云效 DevOps 测试管理,基础版人数 不受限
简介: 女人是上帝的艺术品,那么会写代码的女人是什么?
美国研究者分析了开源代码库Github 140万用户的数据。他们发现和男性相比,女性发送的“拉请求”(代码更新提议)更容易被接受。由数据上看,女性提交代码的通过率为78.6%,而男性的通过率仅为74.6%。

在中国程序媛中,她们的代码又有什么样的魅力,青根联合云栖社区,饿了么,钉钉,阿里云,天猫发起首届程序媛比码大赛活动 - 不秀大长腿,秀高智商;不秀美图照,秀代码图,参与晒码互动游戏赢“83行代码” T恤!

视障工程师蔡勇斌和女朋友为83行代码Ť恤带盐照

虐完狗,我们继续说说这群女工程师的第83行代码及代码背后的故事:

有被代码耽误的钉钉吃货程序媛,写代码写到忘记吃饭的采霜,她急需能把她从代码中叫醒去吃饭的小伙伴,赶紧勾搭;

有以代码为乐的饿了么大前端打(BEI)杂(国)工程师张蓓楚

还有全栈美女工程师 - 前端后端一锅端的朱默女神

还有阿里云像男人一样活好码赞的技术妹子清宵妹子

有天猫的Java的程序媛女神采月


想看程序媛的代码,点我穿越来看程序员比码大赛


附送一段阿里云清宵妹子的golang代码,看完“药神”之后的彩蛋感悟,求程序猿们诗意解读

package main

import (
    "fmt"
    "math/rand"
    "sync"
    "time"
)

var (
    r = rand.New(rand.NewSource(time.Now().Unix()))

    disasterSignal = make(chan string)
    accidentSignal = make(chan string)
    diseaseSignal  = make(chan string)
)

// Element : abstract factor which life consisted by
type Element interface {
    Improve()
    Depress()
    Stable()
    Enable() bool
    BeAbleHandle(event string) bool
}

type Activity interface {
    IsSuitable(life *Life) bool
    Do(life *Life)
    Interrupted()
}

type Life struct {
    Sex string
    Age time.Duration

    Health       Element
    Knowledge    Element
    Ability      Element
    RelationShip Element
    Wealth       Element
    OtherElement Element

    Work        Activity
    Study       Activity
    Exercise    Activity
    Entertain   Activity
    Rest        Activity
    OtherActive Activity

    isDoings []Activity

    vitalitySignal chan struct{}
    NaturalDeath   chan struct{}
}

func (f *Life) Join(oppositeSex *Life, love, family Element) (*Life, error) {
    if !love.Enable() || !family.Enable() || f.Sex == oppositeSex.Sex {
        return nil, fmt.Errorf("Sorry, no boby should be borned!")
    }

    boby := &Life{
        Sex:            []string{"male", "female"}[r.Intn(2)],
        Age:            0,
        isDoings:       []Activity{},
        NaturalDeath:   make(chan struct{}),
        vitalitySignal: make(chan struct{}),
    }

    return boby, nil
}

func (f *Life) Run() {
    go ExternalEndanger(f)
    // time elapses day by day
    for {
        startTime := time.Now().UTC()
        wg := &sync.WaitGroup{}

        for _, active := range []Activity{f.Study, f.Work, f.Entertain, f.Exercise, f.Rest, f.OtherActive} {
            if f.SuitableFor(active) {
                wg.Add(1)
                go func(activity Activity) {
                    defer wg.Wait()
                    activity.Do(f)
                }(active)
            }
        }

        select {
        case <-f.NaturalDeath:
            f.Close()
            fmt.Println("Life is short, make it colourful and cherish the love around all!")
            return
        case <-f.vitalitySignal:
            fmt.Println("记得买保险!")
            return
        case <-time.After(24*time.Hour - time.Now().UTC().Sub(startTime)):
            fmt.Println("One day went by...")
        }
        //wg.Wait()
        f.Age += 24 * time.Hour
    }

    fmt.Println("Goodbye, life!")
}

func (f *Life) Somehow() {
    // happened something to effect one to reach some life stage
}

func (f *Life) SuitableFor(active Activity) bool {
    return active.IsSuitable(f)
}

func (f *Life) Survive(event string) bool {
    for _, e := range []Element{f.Health, f.Knowledge, f.Ability, f.RelationShip, f.Wealth, f.OtherElement} {
        if !e.BeAbleHandle(event) {
            return false
        }
    }

    return true
}

func (f *Life) Close() {
    for _, doing := range f.isDoings {
        doing.Interrupted()
    }

    close(f.vitalitySignal)
}

var female = LifeFromSomeWhere("female")
var male = LifeFromSomeWhere("male")

func ExternalEndanger(f *Life) {
    for {
        event := ""
        select {
        case event = <-diseaseSignal:
        case event = <-disasterSignal:
        case event = <-accidentSignal:
        }

        if !f.Survive(event) {
            f.Close()
            return
        }
    }
}

func LifeFromSomeWhere(sex string) *Life {
    life := &Life{Sex: sex}
    life.Somehow()

    return life
}

func main() {
    // I don't know the question of "鸡生蛋 or 蛋生鸡"...
    newLife, err := female.Join(male, ElementImp{Type: "love"}, ElementImp{Type: "family"})
    if err != nil {
        newLife.Run()
    }
}

 

相关文章
|
存储 设计模式 人工智能
规范:前端代码开发规范
规范:前端代码开发规范
1822 0
|
消息中间件 Java API
RocketMQ事务消息, 图文、源码学习探究~
介绍 RocketMQ是阿里巴巴开源的分布式消息中间件,它是一个高性能、低延迟、可靠的消息队列系统,用于在分布式系统中进行异步通信。 从4.3.0版本开始正式支持分布式事务消息~ RocketMq事务消息支持最终一致性:在普通消息基础上,支持二阶段的提交能力。将二阶段提交和本地事务绑定,实现全局提交结果的一致性。 原理、流程 本质上RocketMq的事务能力是基于二阶段提交来实现的 在消息发送上,将二阶段提交与本地事务绑定 本地事务执行成功,则事务消息成功,可以交由Consumer消费 本地事务执行失败,则事务消息失败,Consumer无法消费 但是,RocketMq只能保证本地事务
|
数据采集 存储 前端开发
【Go语言实战】(2) Gin+Vue 电子商城
目录 🎈1. 需求分析 1.1 数据获取 1.2 ⽤户操作 1.3 其他功能 1.4 拓展功能 1.5 开发环境 🎉2. 后端逻辑代码 2.1 Python - 爬虫 2.2 Golang - Gin 2.2.1 数据库部分 2.2.1 服务部分 ✨3. 前端核心代码 3.1 AXIOS前后端交互 🎊4. 部分页面展示 4.1 前台页面 4.2 后台管理 🎆5. 结语 🎇最后
654 0
【Go语言实战】(2) Gin+Vue 电子商城
|
12月前
|
Linux C++
在Linux上安装CLion
在Linux上安装CLion
660 0
|
11月前
|
消息中间件 小程序 RocketMQ
消息队列 MQ使用问题之如何在小程序中引用paho-mqtt
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
2024金九银十通过率最高的大厂面试真题汇总,已助500+人成功上岸
不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。
|
缓存 小程序 开发者
微信小程序如何刷新当前页面
微信小程序如何刷新当前页面
1003 0
|
前端开发 JavaScript Java
前端框架大比拼:2022年的Vue与React谁更胜一筹?
前端框架大比拼:2022年的Vue与React谁更胜一筹?
1692 1
|
安全 Ubuntu Linux
新一代通用的Linux软件包管理工具
  1. 前言   snap和flatpak都是新一代跨Linux发行版的软件包管理技术,这两种下一代打包方法在本质上拥有相同的目标和特点:即不依赖于第三方系统功能库的独立包装。上一篇我们简单介绍了flatpak的原理,今天我们接着简要介绍snap的安全机制。   2. 简介   snap是Canoncial公司提出的新一代linux包管理工具,致力于将所有linux发行版上的包格式统一,做到“一次打包,到处使用”。目前snap已经可以在包括Ubuntu、Fedora、Mint等多个Linux发行版上使用。首先我们来了解下snap相关的各种名词:
674 0